Created
February 7, 2024 11:32
-
-
Save gouthamve/925a691d9a7b289916ad7a430c891b56 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Tested with OpenTelemetry Collector Contrib v0.88.0 | |
receivers: | |
otlp: | |
# https://github.com/open-telemetry/opentelemetry-collector/tree/main/receiver/otlpreceiver | |
protocols: | |
grpc: | |
http: | |
hostmetrics: | |
# Optional. Host Metrics Receiver added as an example of Infra Monitoring capabilities of the OpenTelemetry Collector | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver | |
scrapers: | |
load: | |
memory: | |
processors: | |
batch: | |
# https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/batchprocessor | |
resourcedetection: | |
# Enriches telemetry data with resource information from the host | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/resourcedetectionprocessor | |
detectors: ["env", "system"] | |
override: false | |
transform/add_resource_attributes_as_metric_attributes: | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/transformprocessor | |
error_mode: ignore | |
metric_statements: | |
- context: datapoint | |
statements: | |
- set(attributes["deployment.environment"], resource.attributes["deployment.environment"]) | |
- set(attributes["service.version"], resource.attributes["service.version"]) | |
filter/drop_unneeded_span_metrics: | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/filterprocessor | |
error_mode: ignore | |
metrics: | |
datapoint: | |
- 'IsMatch(metric.name, "traces.spanmetrics.calls|traces.spanmetrics.duration") and IsMatch(attributes["span.kind"], "SPAN_KIND_INTERNAL|SPAN_KIND_CLIENT|SPAN_KIND_PRODUCER")' | |
transform/use_grafana_metric_names: | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/transformprocessor | |
error_mode: ignore | |
metric_statements: | |
- context: metric | |
statements: | |
- set(name, "traces.spanmetrics.latency") where name == "traces.spanmetrics.duration" | |
- set(name, "traces.spanmetrics.calls.total") where name == "traces.spanmetrics.calls" | |
tail_sampling: | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/tailsamplingprocessor | |
policies: | |
# Examples: keep all traces that take more than 5000 ms | |
[ | |
{ | |
name: all_traces_above_5000ms, | |
type: latency, | |
latency: { threshold_ms: 5000 }, | |
}, | |
] | |
connectors: | |
servicegraph: | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/servicegraphconnector | |
dimensions: | |
- service.namespace | |
- service.version | |
- deployment.environment | |
spanmetrics: | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/connector/spanmetricsconnector | |
namespace: traces.spanmetrics | |
histogram: | |
unit: s | |
dimensions: | |
- name: service.namespace | |
- name: service.version | |
- name: deployment.environment | |
spanmetrics/cost_metrics: | |
namespace: traces.costmetrics | |
histogram: | |
disable: true | |
exporters: | |
otlp/grafana_cloud_traces: | |
# https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlpexporter | |
endpoint: "${env:GRAFANA_CLOUD_TEMPO_ENDPOINT}" | |
auth: | |
authenticator: basicauth/grafana_cloud_traces | |
loki/grafana_cloud_logs: | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/lokiexporter | |
endpoint: "${env:GRAFANA_CLOUD_LOKI_URL}" | |
auth: | |
authenticator: basicauth/grafana_cloud_logs | |
prometheusremotewrite/grafana_cloud_metrics: | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/prometheusremotewriteexporter | |
endpoint: "${env:GRAFANA_CLOUD_PROMETHEUS_URL}" | |
auth: | |
authenticator: basicauth/grafana_cloud_metrics | |
add_metric_suffixes: false | |
extensions: | |
basicauth/grafana_cloud_traces: | |
# https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/basicauthextension | |
client_auth: | |
username: "${env:GRAFANA_CLOUD_TEMPO_USERNAME}" | |
password: "${env:GRAFANA_CLOUD_API_KEY}" | |
basicauth/grafana_cloud_metrics: | |
client_auth: | |
username: "${env:GRAFANA_CLOUD_PROMETHEUS_USERNAME}" | |
password: "${env:GRAFANA_CLOUD_API_KEY}" | |
basicauth/grafana_cloud_logs: | |
client_auth: | |
username: "${env:GRAFANA_CLOUD_LOKI_USERNAME}" | |
password: "${env:GRAFANA_CLOUD_API_KEY}" | |
service: | |
extensions: | |
[ | |
basicauth/grafana_cloud_traces, | |
basicauth/grafana_cloud_metrics, | |
basicauth/grafana_cloud_logs, | |
] | |
pipelines: | |
traces: | |
receivers: [otlp] | |
processors: [resourcedetection, batch] | |
exporters: [servicegraph, spanmetrics] | |
traces/grafana_cloud_traces: | |
receivers: [otlp] | |
processors: [resourcedetection, tail_sampling, batch] | |
exporters: [otlp/grafana_cloud_traces, spanmetrics/cost_metrics] | |
metrics: | |
receivers: [otlp, hostmetrics] | |
processors: | |
[ | |
resourcedetection, | |
transform/add_resource_attributes_as_metric_attributes, | |
batch, | |
] | |
exporters: [prometheusremotewrite/grafana_cloud_metrics] | |
metrics/spanmetrics: | |
receivers: [spanmetrics] | |
processors: | |
[ | |
filter/drop_unneeded_span_metrics, | |
transform/use_grafana_metric_names, | |
batch, | |
] | |
exporters: [prometheusremotewrite/grafana_cloud_metrics] | |
metrics/servicegraph: | |
receivers: [servicegraph, spanmetrics/cost_metrics] | |
processors: [batch] | |
exporters: [prometheusremotewrite/grafana_cloud_metrics] | |
logs: | |
receivers: [otlp] | |
processors: [resourcedetection, batch] | |
exporters: [loki/grafana_cloud_logs] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment