Skip to content

Conversation

@Anand-Singh1990
Copy link

Which problem is this PR solving?

Description of the changes

  • Added a new Grafana dashboard definition jaeger-v2.json in [monitoring/jaeger-mixin/dashboards.libsonnet] that uses OpenTelemetry Collector metrics (otelcol_*) instead of legacy Jaeger metrics.
  • Added a helper function qpsPanelSuccessError to [dashboards.libsonnet] to streamline panel creation.
  • Generated the corresponding dashboard JSON file: [monitoring/jaeger-mixin/dashboard-v2-for-grafana.json].
  • This provides visual observability for Jaeger v2 components (Collector, Exporters, Queue) using the new metric names (e.g., otelcol_receiver_accepted_spans, otelcol_exporter_queue_size).

How was this change tested?

  • Generated the dashboard using [jsonnet] and jb to ensure valid syntax and successful compilation.
  • Manually inspected the generated [dashboard-v2-for-grafana.json] file to verify that the PromQL queries correctly target the expected otelcol_ metrics and that the panel structure is correct.
  • Added [monitoring/jaeger-mixin/tests.jsonnet] to programmatically verify the dashboard title and panel count.

Checklist

@Anand-Singh1990 Anand-Singh1990 force-pushed the feature/grafana-dashboards-v2 branch from 19e2bdc to c4e4f81 Compare January 1, 2026 11:10
@yurishkuro
Copy link
Member

is monitoring/jaeger-mixin/README.md still accurate after these changes?

@Anand-Singh1990
Copy link
Author

is monitoring/jaeger-mixin/README.md still accurate after these changes?

I've updated the README to remove the now-obsolete warning about V2 metric incompatibility. Since the default dashboard and alerts are now V2-native, the documentation is consistent with the code.


.PHONY: lint
lint: lint-fmt lint-license lint-imports lint-semconv lint-goversion lint-goleak lint-go
lint: lint-fmt lint-license lint-imports lint-semconv lint-goversion lint-goleak lint-go lint-monitoring
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not something we change that often to include this in the main lint target. We can add a workflow that is only executed if files in this dir are changed.

cd monitoring/jaeger-mixin

# Install dependencies
~/go/bin/jb install
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is no guarantee that this is where go installs binaries. You can use the approach we have in internal/tools, add a separate target to scripts/makefiles/Tools.mk

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

Metrics Comparison Summary

Total changes across all snapshots: 7

Detailed changes per snapshot

summary_metrics_snapshot_kafka

📊 Metrics Diff Summary

Total Changes: 7

  • 🆕 Added: 0 metrics
  • ❌ Removed: 0 metrics
  • 🔄 Modified: 7 metrics

🔄 Modified Metrics

  • otelcol_kafka_exporter_write_latency_seconds

    • Added variants: 22
    • Removed variants: 22
    View diff sample
    -otelcol_kafka_exporter_write_latency_seconds{le="+Inf",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="127.0.0.1"}
    +otelcol_kafka_exporter_write_latency_seconds{le="+Inf",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="localhost"}
    -otelcol_kafka_exporter_write_latency_seconds{le="0",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="127.0.0.1"}
    +otelcol_kafka_exporter_write_latency_seconds{le="0",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="localhost"}
    -otelcol_kafka_exporter_write_latency_seconds{le="0.005",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="127.0.0.1"}
    +otelcol_kafka_exporter_write_latency_seconds{le="0.005",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="localhost"}
    -otelcol_kafka_exporter_write_latency_seconds{le="0.01",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="127.0.0.1"}
    ...
  • otelcol_kafka_exporter_bytes

    • Added variants: 1
    • Removed variants: 1
    View diff sample
    -otelcol_kafka_exporter_bytes{compression_codec="none",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",partition="0",server_address="127.0.0.1",topic="jaeger-spans-"}
    +otelcol_kafka_exporter_bytes{compression_codec="none",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",partition="0",server_address="localhost",topic="jaeger-spans-"}
  • otelcol_kafka_exporter_messages

    • Added variants: 1
    • Removed variants: 1
    View diff sample
    -otelcol_kafka_exporter_messages{compression_codec="none",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",partition="0",server_address="127.0.0.1",topic="jaeger-spans-"}
    +otelcol_kafka_exporter_messages{compression_codec="none",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",partition="0",server_address="localhost",topic="jaeger-spans-"}
  • otelcol_kafka_broker_connects

    • Added variants: 1
    • Removed variants: 1
    View diff sample
    -otelcol_kafka_broker_connects{node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="127.0.0.1"}
    +otelcol_kafka_broker_connects{node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="localhost"}
  • otelcol_kafka_exporter_bytes_uncompressed

    • Added variants: 1
    • Removed variants: 1
    View diff sample
    -otelcol_kafka_exporter_bytes_uncompressed{compression_codec="none",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",partition="0",server_address="127.0.0.1",topic="jaeger-spans-"}
    +otelcol_kafka_exporter_bytes_uncompressed{compression_codec="none",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",partition="0",server_address="localhost",topic="jaeger-spans-"}
  • otelcol_kafka_exporter_latency_milliseconds

    • Added variants: 18
    • Removed variants: 18
    View diff sample
    -otelcol_kafka_exporter_latency_milliseconds{le="+Inf",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="127.0.0.1"}
    +otelcol_kafka_exporter_latency_milliseconds{le="+Inf",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="localhost"}
    -otelcol_kafka_exporter_latency_milliseconds{le="0",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="127.0.0.1"}
    +otelcol_kafka_exporter_latency_milliseconds{le="0",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="localhost"}
    -otelcol_kafka_exporter_latency_milliseconds{le="10",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="127.0.0.1"}
    +otelcol_kafka_exporter_latency_milliseconds{le="10",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="localhost"}
    -otelcol_kafka_exporter_latency_milliseconds{le="100",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",server_address="127.0.0.1"}
    ...
  • otelcol_kafka_exporter_records

    • Added variants: 1
    • Removed variants: 1
    View diff sample
    -otelcol_kafka_exporter_records{compression_codec="none",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",partition="0",server_address="127.0.0.1",topic="jaeger-spans-"}
    +otelcol_kafka_exporter_records{compression_codec="none",node_id="1",otel_scope_name="github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter",otel_scope_schema_url="",otel_scope_version="",outcome="success",partition="0",server_address="localhost",topic="jaeger-spans-"}

➡️ View full metrics file

@Anand-Singh1990 Anand-Singh1990 marked this pull request as draft January 7, 2026 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Grafana dashboards for metrics exporter

2 participants