Skip to content

Commit

Permalink
[cmd/opampsupervisor] report own metrics via OTLP (#37346)
Browse files Browse the repository at this point in the history
  • Loading branch information
codeboten authored Jan 22, 2025
1 parent 4ebb7af commit 231aa7f
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 56 deletions.
27 changes: 27 additions & 0 deletions .chloggen/codeboten_opampsupervisor-emit-otlp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Use this changelog template to create an entry for release notes.

# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: enhancement

# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver)
component: opampsupervisor

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: report own metrics via OTLP instead of prometheus receiver

# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
issues: [37346]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:

# If your change doesn't affect end users or the exported elements of any package,
# you should instead start your pull request title with [chore] or use the "Skip Changelog" label.
# Optional: The change log or logs in which this entry should be included.
# e.g. '[user]' or '[user, api]'
# Include 'user' if the change is relevant to end users.
# Include 'api' if there is a change to a library API.
# Default: '[user]'
change_logs: []
53 changes: 14 additions & 39 deletions cmd/opampsupervisor/supervisor/supervisor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,6 @@ func Test_onMessage(t *testing.T) {
require.Equal(t, newID, s.persistentState.InstanceID)
t.Log(s.cfgState.Load())
mergedCfg := s.cfgState.Load().(*configState).mergedConfig
require.Contains(t, mergedCfg, "prometheus/own_metrics")
require.Contains(t, mergedCfg, newID.String())
require.Contains(t, mergedCfg, "runtime.type: test")
})
Expand Down Expand Up @@ -1129,27 +1128,16 @@ func TestSupervisor_setupOwnMetrics(t *testing.T) {
DestinationEndpoint: "localhost",
})

expectedOwnMetricsSection := `receivers:
# Collect own metrics
prometheus/own_metrics:
config:
scrape_configs:
- job_name: 'otel-collector'
scrape_interval: 10s
static_configs:
- targets: ['0.0.0.0:55555']
exporters:
otlphttp/own_metrics:
metrics_endpoint: "localhost"
expectedOwnMetricsSection := `
service:
telemetry:
metrics:
address: ":55555"
pipelines:
metrics/own_metrics:
receivers: [prometheus/own_metrics]
exporters: [otlphttp/own_metrics]
readers:
- periodic:
exporter:
otlp:
protocol: http/protobuf
endpoint: localhost
`

assert.True(t, configChanged)
Expand Down Expand Up @@ -1209,10 +1197,7 @@ func TestSupervisor_loadAndWriteInitialMergedConfig(t *testing.T) {
debug/remote:
`

const expectedMergedConfig = `exporters:
otlphttp/own_metrics:
metrics_endpoint: localhost
extensions:
const expectedMergedConfig = `extensions:
health_check:
endpoint: ""
opamp:
Expand All @@ -1226,30 +1211,20 @@ extensions:
insecure: true
receiver:
debug/remote: null
receivers:
prometheus/own_metrics:
config:
scrape_configs:
- job_name: otel-collector
scrape_interval: 10s
static_configs:
- targets:
- 0.0.0.0:55555
service:
extensions:
- health_check
- opamp
pipelines:
metrics/own_metrics:
exporters:
- otlphttp/own_metrics
receivers:
- prometheus/own_metrics
telemetry:
logs:
encoding: json
metrics:
address: :55555
readers:
- periodic:
exporter:
otlp:
endpoint: localhost
protocol: http/protobuf
resource:
service.name: otelcol
`
Expand Down
23 changes: 6 additions & 17 deletions cmd/opampsupervisor/supervisor/templates/owntelemetry.yaml
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
receivers:
# Collect own metrics
prometheus/own_metrics:
config:
scrape_configs:
- job_name: 'otel-collector'
scrape_interval: 10s
static_configs:
- targets: ['0.0.0.0:{{.PrometheusPort}}']
exporters:
otlphttp/own_metrics:
metrics_endpoint: "{{.MetricsEndpoint}}"

service:
telemetry:
metrics:
address: ":{{.PrometheusPort}}"
pipelines:
metrics/own_metrics:
receivers: [prometheus/own_metrics]
exporters: [otlphttp/own_metrics]
readers:
- periodic:
exporter:
otlp:
protocol: http/protobuf
endpoint: {{.MetricsEndpoint}}

0 comments on commit 231aa7f

Please sign in to comment.