将日志发送到开放遥测收集器

问题描述 投票:0回答:1

我是 Open Telemetry 的新手,我正在尝试使用它的 C++ API 和一个发出日志的玩具示例。我正在使用 OtlpHttpLogExporter 通过 http 发送到开放遥测收集器。我将收集器配置为使用“日志记录”导出器将收集到的数据打印到控制台。当我启动收集器然后运行代码时,它成功完成,但没有打印任何内容。我错过了什么吗?你能建议我如何调试这个问题吗?

我尝试切换到 OStreamLogExporter 直接打印到控制台,而不是发送到开放遥测收集器,日志打印得很好。我还尝试向收集器发出痕迹和跨度,效果也很好。这个问题似乎专门与向收集器发送日志有关。

#include "opentelemetry/sdk/logs/simple_log_processor.h"
#include "opentelemetry/sdk/logs/logger_provider.h"
#include "opentelemetry/logs/provider.h"

#include "opentelemetry/exporters/otlp/otlp_http_log_exporter.h"
#include "opentelemetry/sdk/version/version.h"

namespace logs_sdk = opentelemetry::sdk::logs;
namespace otlp      = opentelemetry::exporter::otlp;

opentelemetry::exporter::otlp::OtlpHttpLogExporterOptions logger_opts;
int main()
{
  auto exporter = std::unique_ptr<logs_sdk::LogExporter>(new otlp::OtlpHttpLogExporter(logger_opts));
  auto processor = std::unique_ptr<logs_sdk::LogProcessor>(
      new logs_sdk::SimpleLogProcessor(std::move(exporter)));
  auto provider =
      std::shared_ptr<logs_sdk::LoggerProvider>(new logs_sdk::LoggerProvider(std::move(processor)));

  // Get Logger
  auto logger = provider->GetLogger("firstlog", "", OPENTELEMETRY_SDK_VERSION);
  logger->Debug("I am the first log message.");
}

以及收集器的配置:

extensions:
  health_check:
  pprof:
    endpoint: 0.0.0.0:1777
  zpages:
    endpoint: 0.0.0.0:55679

receivers:
  otlp:
    protocols:
      grpc:
      http:

  opencensus:

  # Collect own metrics
  prometheus:
    config:
      scrape_configs:
      - job_name: 'otel-collector'
        scrape_interval: 10s
        static_configs:
        - targets: ['0.0.0.0:8888']

  jaeger:
    protocols:
      grpc:
      thrift_binary:
      thrift_compact:
      thrift_http:

  zipkin:

processors:
  batch:

exporters:
  file:
    path: ./myoutput.json

  logging:
    logLevel: debug

  prometheus:
    endpoint: "prometheus:8889"
    namespace: "default"

  jaeger:
    endpoint: "localhost:14250"
    tls:
      insecure: true


service:

  pipelines:

    logs:
      receivers: [otlp]
      processors: [batch]
      exporters: [logging]    

    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [logging]

    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [logging]


  extensions: [health_check, pprof, zpages]
c++ logging open-telemetry
1个回答
0
投票

需要设置日志级别

opentelemetry::sdk::common::internal_log::GlobalLogHandler::SetLogLevel(opentelemetry::sdk::common::internal_log::LogLevel::Debug);
© www.soinside.com 2019 - 2024. All rights reserved.