pinojs/pino

Issues using pino-opentelemetry-transport while exporting to Grafana Loki

ziyak97 opened this issue · 3 comments

I am running otel/opentelemetry-collector-contrib:latest using the following config

receivers:
  otlp:
    protocols:
      grpc:

exporters:
  logging:
    verbosity: detailed

  loki:
    endpoint: "https://<my-endpoint>/loki/api/v1/push"
  
processors:
  batch:
    timeout: 5s
    send_batch_size: 1024

service:
  pipelines:
    logs:
      receivers: [otlp]
      processors: [batch]
      exporters: [logging, loki]

This sends my data to Grafana Loki. The logs i get on my otel/opentelemetry-collector-contrib:latest process is like this

logging-otel-collector-1  | 2023-08-12T20:19:14.962Z	info	ResourceLog #0
logging-otel-collector-1  | Resource SchemaURL:
logging-otel-collector-1  | Resource attributes:
logging-otel-collector-1  |      -> service.name: Str(my-service)
logging-otel-collector-1  |      -> telemetry.sdk.language: Str(nodejs)
logging-otel-collector-1  |      -> telemetry.sdk.name: Str(opentelemetry)
logging-otel-collector-1  |      -> telemetry.sdk.version: Str(1.15.2)
logging-otel-collector-1  |      -> service.version: Str(1.2.3)
logging-otel-collector-1  |      -> host.name: Str(PP-C5GQTT2HQK)
logging-otel-collector-1  |      -> host.arch: Str(arm64)
logging-otel-collector-1  |      -> os.type: Str(darwin)
logging-otel-collector-1  |      -> os.version: Str(22.6.0)
logging-otel-collector-1  | ScopeLogs #0
logging-otel-collector-1  | ScopeLogs SchemaURL:
logging-otel-collector-1  | InstrumentationScope unknown
logging-otel-collector-1  | LogRecord #0
logging-otel-collector-1  | ObservedTimestamp: 2023-08-12 20:19:12.824999936 +0000 UTC
logging-otel-collector-1  | Timestamp: 2023-08-12 20:19:12.820999936 +0000 UTC
logging-otel-collector-1  | SeverityText: INFO
logging-otel-collector-1  | SeverityNumber: Info(9)
logging-otel-collector-1  | Body: Str(Hello World!)
logging-otel-collector-1  | Trace ID:
logging-otel-collector-1  | Span ID:
logging-otel-collector-1  | Flags: 0
logging-otel-collector-1  | 	{"kind": "exporter", "data_type": "logs", "name": "logging"}

However on My Grafana Loki dashboard there is no TraceId/Timestamp

{"body":"Hello World!","severity":"INFO","resources":{"host.arch":"arm64","host.name":"PP-C5GQTT2HQK","os.type":"darwin","os.version":"22.6.0","service.name":"my-service","service.version":"1.2.3","telemetry.sdk.language":"nodejs","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.15.2"},"instrumentation_scope":{"name":"unknown"}}

i have no idea why this is happening any help would be appreciated!

My Javascript code -

const pino = require("pino");

const transport = pino.transport({
  target: "pino-opentelemetry-transport",
});

const logger = pino(transport);

transport.on("ready", function () {
  logger.info("Hello World!");
});

How i run my index.js

OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://localhost:4317 OTEL_RESOURCE_ATTRIBUTES="service.name=my-service,service.version=1.2.3" node index.js

When i check my table view I do get
Time, tsNs and id
However traceID is empty. I have no idea if this is populated by Grafana Loki or by pino. Either way traceID is empty not sure if that's normal or an issue

You should report this to the pino-opentelemetry-transport module. It's maintained by a 3rd party and not by us.