Skip to content

Commit 8603fd4

Browse files
Mark Stumpfpmatyjasek-sumo
authored andcommitted
[exporters/signalfx]: remove unnecessary default translation rules (#2672)
1 parent d74b4c9 commit 8603fd4

File tree

4 files changed

+21
-239
lines changed

4 files changed

+21
-239
lines changed

exporter/signalfxexporter/factory_test.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -288,14 +288,6 @@ func TestDefaultTranslationRules(t *testing.T) {
288288
require.Equal(t, 1, len(dps))
289289
require.Equal(t, 3, len(dps[0].Dimensions))
290290
require.Equal(t, int64(10e9), *dps[0].Value.IntValue)
291-
292-
// memory page faults and working set renames
293-
_, ok = metrics["container_memory_working_set_bytes"]
294-
require.True(t, ok, "container_memory_working_set_bytes not found")
295-
_, ok = metrics["container_memory_page_faults"]
296-
require.True(t, ok, "container_memory_page_faults not found")
297-
_, ok = metrics["container_memory_major_page_faults"]
298-
require.True(t, ok, "container_memory_major_page_faults not found")
299291
}
300292

301293
func TestCreateMetricsExporterWithDefaultExcludeMetrics(t *testing.T) {
@@ -1067,7 +1059,7 @@ func TestDefaultExcludes_not_translated(t *testing.T) {
10671059
require.NoError(t, err)
10681060

10691061
rms := getResourceMetrics(metrics)
1070-
require.Equal(t, 72, rms.InstrumentationLibraryMetrics().At(0).Metrics().Len())
1062+
require.Equal(t, 71, rms.InstrumentationLibraryMetrics().At(0).Metrics().Len())
10711063
dps := converter.MetricDataToSignalFxV2(rms)
10721064
require.Equal(t, 0, len(dps))
10731065
}

exporter/signalfxexporter/testdata/json/non_default_metrics_otel_convention.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,6 @@
137137
{
138138
"container.memory.rss": null
139139
},
140-
{
141-
"container.memory.usage": null
142-
},
143140
{
144141
"container.memory.working_set": null
145142
},
@@ -224,4 +221,4 @@
224221
{
225222
"k8s.volume.inodes.used": null
226223
}
227-
]
224+
]

exporter/signalfxexporter/translation/constants.go

Lines changed: 18 additions & 225 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,8 @@ translation_rules:
3636
3737
- action: rename_dimension_keys
3838
mapping:
39-
40-
# dimensions
4139
k8s.cronjob.name: kubernetes_name
4240
k8s.cronjob.uid: kubernetes_uid
43-
container.image.name: container_image
44-
k8s.container.name: container_spec_name
45-
k8s.cluster.name: kubernetes_cluster
4641
k8s.daemonset.name: kubernetes_name
4742
k8s.daemonset.uid: kubernetes_uid
4843
k8s.deployment.name: kubernetes_name
@@ -51,209 +46,18 @@ translation_rules:
5146
k8s.hpa.uid: kubernetes_uid
5247
k8s.job.name: kubernetes_name
5348
k8s.job.uid: kubernetes_uid
54-
k8s.namespace.name: kubernetes_namespace
55-
k8s.node.name: kubernetes_node
56-
k8s.node.uid: kubernetes_node_uid
57-
k8s.pod.name: kubernetes_pod_name
58-
k8s.pod.uid: kubernetes_pod_uid
5949
k8s.replicaset.name: kubernetes_name
6050
k8s.replicaset.uid: kubernetes_uid
6151
k8s.replicationcontroller.name: kubernetes_name
6252
k8s.replicationcontroller.uid: kubernetes_uid
63-
k8s.resourcequota.name: quota_name
6453
k8s.resourcequota.uid: kubernetes_uid
6554
k8s.statefulset.name: kubernetes_name
6655
k8s.statefulset.uid: kubernetes_uid
67-
host.name: host
6856
6957
- action: rename_metrics
7058
mapping:
71-
# kubeletstats receiver metrics
59+
# kubeletstats container cpu needed for calculation below
7260
container.cpu.time: container_cpu_utilization
73-
container.filesystem.available: container_fs_available_bytes
74-
container.filesystem.capacity: container_fs_capacity_bytes
75-
container.filesystem.usage: container_fs_usage_bytes
76-
container.memory.available: container_memory_available_bytes
77-
container.memory.major_page_faults: container_memory_major_page_faults
78-
container.memory.page_faults: container_memory_page_faults
79-
container.memory.rss: container_memory_rss_bytes
80-
container.memory.usage: container_memory_usage_bytes
81-
container.memory.working_set: container_memory_working_set_bytes
82-
83-
# k8s cluster receiver metrics
84-
k8s.container.cpu_limit: kubernetes.container_cpu_limit
85-
k8s.container.cpu_request: kubernetes.container_cpu_request
86-
k8s.container.ephemeral-storage_limit: kubernetes.container_ephemeral_storage_limit
87-
k8s.container.ephemeral-storage_request: kubernetes.container_ephemeral_storage_request
88-
k8s.container.memory_limit: kubernetes.container_memory_limit
89-
k8s.container.memory_request: kubernetes.container_memory_request
90-
k8s.container.ready: kubernetes.container_ready
91-
k8s.container.restarts: kubernetes.container_restart_count
92-
k8s.cronjob.active_jobs: kubernetes.cronjob.active
93-
k8s.daemonset.current_scheduled_nodes: kubernetes.daemon_set.current_scheduled
94-
k8s.daemonset.desired_scheduled_nodes: kubernetes.daemon_set.desired_scheduled
95-
k8s.daemonset.misscheduled_nodes: kubernetes.daemon_set.misscheduled
96-
k8s.daemonset.ready_nodes: kubernetes.daemon_set.ready
97-
k8s.deployment.available: kubernetes.deployment.available
98-
k8s.deployment.desired: kubernetes.deployment.desired
99-
k8s.job.active_pods: kubernetes.job.active
100-
k8s.job.desired_successful_pods: kubernetes.job.completions
101-
k8s.job.failed_pods: kubernetes.job.failed
102-
k8s.job.max_parallel_pods: kubernetes.job.parallelism
103-
k8s.job.successful_pods: kubernetes.job.succeeded
104-
k8s.hpa.current_replicas: kubernetes.hpa.status.current_replicas
105-
k8s.hpa.desired_replicas: kubernetes.hpa.status.desired_replicas
106-
k8s.hpa.max_replicas: kubernetes.hpa.spec.max_replicas
107-
k8s.hpa.min_replicas: kubernetes.hpa.spec.min_replicas
108-
k8s.namespace.phase: kubernetes.namespace_phase
109-
k8s.node.condition_memory_pressure: kubernetes.node_memory_pressure
110-
k8s.node.condition_network_unavailable: kubernetes.node_network_unavailable
111-
k8s.node.condition_out_of_disk: kubernetes.node_out_of_disk
112-
k8s.node.condition_p_i_d_pressure: kubernetes.node_p_i_d_pressure
113-
k8s.node.condition_ready: kubernetes.node_ready
114-
k8s.pod.phase: kubernetes.pod_phase
115-
k8s.replicaset.available: kubernetes.replica_set.available
116-
k8s.replicaset.desired: kubernetes.replica_set.desired
117-
k8s.replication_controller.available: kubernetes.replication_controller.available
118-
k8s.replication_controller.desired: kubernetes.replication_controller.desired
119-
k8s.resource_quota.hard_limit: kubernetes.resource_quota_hard
120-
k8s.resource_quota.used: kubernetes.resource_quota_used
121-
k8s.statefulset.current_pods: kubernetes.stateful_set.current
122-
k8s.statefulset.desired_pods: kubernetes.stateful_set.desired
123-
k8s.statefulset.ready_pods: kubernetes.stateful_set.ready
124-
k8s.statefulset.updated_pods: kubernetes.stateful_set.updated
125-
126-
# load metrics
127-
system.cpu.load_average.15m: load.longterm
128-
system.cpu.load_average.5m: load.midterm
129-
system.cpu.load_average.1m: load.shortterm
130-
131-
# Docker Stats Receiver
132-
- action: rename_metrics
133-
mapping:
134-
container.blockio.io_merged_recursive.async: blkio.io_merged_recursive.async
135-
container.blockio.io_merged_recursive.discard: blkio.io_merged_recursive.discard
136-
container.blockio.io_merged_recursive.read: blkio.io_merged_recursive.read
137-
container.blockio.io_merged_recursive.sync: blkio.io_merged_recursive.sync
138-
container.blockio.io_merged_recursive.total: blkio.io_merged_recursive.total
139-
container.blockio.io_merged_recursive.write: blkio.io_merged_recursive.write
140-
container.blockio.io_queued_recursive.async: blkio.io_queue_recursive.async
141-
container.blockio.io_queued_recursive.discard: blkio.io_queue_recursive.discard
142-
container.blockio.io_queued_recursive.read: blkio.io_queue_recursive.read
143-
container.blockio.io_queued_recursive.sync: blkio.io_queue_recursive.sync
144-
container.blockio.io_queued_recursive.total: blkio.io_queue_recursive.total
145-
container.blockio.io_queued_recursive.write: blkio.io_queue_recursive.write
146-
container.blockio.io_service_bytes_recursive.async: blkio.io_service_bytes_recursive.async
147-
container.blockio.io_service_bytes_recursive.discard: blkio.io_service_bytes_recursive.discard
148-
container.blockio.io_service_bytes_recursive.read: blkio.io_service_bytes_recursive.read
149-
container.blockio.io_service_bytes_recursive.sync: blkio.io_service_bytes_recursive.sync
150-
container.blockio.io_service_bytes_recursive.total: blkio.io_service_bytes_recursive.total
151-
container.blockio.io_service_bytes_recursive.write: blkio.io_service_bytes_recursive.write
152-
container.blockio.io_service_time_recursive.async: blkio.io_service_time_recursive.async
153-
container.blockio.io_service_time_recursive.discard: blkio.io_service_time_recursive.discard
154-
container.blockio.io_service_time_recursive.read: blkio.io_service_time_recursive.read
155-
container.blockio.io_service_time_recursive.sync: blkio.io_service_time_recursive.sync
156-
container.blockio.io_service_time_recursive.total: blkio.io_service_time_recursive.total
157-
container.blockio.io_service_time_recursive.write: blkio.io_service_time_recursive.write
158-
container.blockio.io_serviced_recursive.async: blkio.io_serviced_recursive.async
159-
container.blockio.io_serviced_recursive.discard: blkio.io_serviced_recursive.discard
160-
container.blockio.io_serviced_recursive.read: blkio.io_serviced_recursive.read
161-
container.blockio.io_serviced_recursive.sync: blkio.io_serviced_recursive.sync
162-
container.blockio.io_serviced_recursive.total: blkio.io_serviced_recursive.total
163-
container.blockio.io_serviced_recursive.write: blkio.io_serviced_recursive.write
164-
container.blockio.io_time_recursive.async: blkio.io_time_recursive.async
165-
container.blockio.io_time_recursive.discard: blkio.io_time_recursive.discard
166-
container.blockio.io_time_recursive.read: blkio.io_time_recursive.read
167-
container.blockio.io_time_recursive.sync: blkio.io_time_recursive.sync
168-
container.blockio.io_time_recursive.total: blkio.io_time_recursive.total
169-
container.blockio.io_time_recursive.write: blkio.io_time_recursive.write
170-
container.blockio.io_wait_time_recursive.async: blkio.io_wait_time_recursive.async
171-
container.blockio.io_wait_time_recursive.discard: blkio.io_wait_time_recursive.discard
172-
container.blockio.io_wait_time_recursive.read: blkio.io_wait_time_recursive.read
173-
container.blockio.io_wait_time_recursive.sync: blkio.io_wait_time_recursive.sync
174-
container.blockio.io_wait_time_recursive.total: blkio.io_wait_time_recursive.total
175-
container.blockio.io_wait_time_recursive.write: blkio.io_wait_time_recursive.write
176-
container.blockio.sectors_recursive.async: blockio.sectors_recursive.async
177-
container.blockio.sectors_recursive.discard: blockio.sectors_recursive.discard
178-
container.blockio.sectors_recursive.read: blockio.sectors_recursive.read
179-
container.blockio.sectors_recursive.sync: blockio.sectors_recursive.sync
180-
container.blockio.sectors_recursive.total: blockio.sectors_recursive.total
181-
container.blockio.sectors_recursive.write: blockio.sectors_recursive.write
182-
container.cpu.percent: cpu.percent
183-
container.cpu.throttling_data.periods: cpu.throttling_data.periods
184-
container.cpu.throttling_data.throttled_periods: cpu.throttling_data.throttled_periods
185-
container.cpu.throttling_data.throttled_time: cpu.throttling_data.throttled_time
186-
container.cpu.usage.kernelmode: cpu.usage.kernelmode
187-
container.cpu.usage.percpu: cpu.percpu.usage
188-
container.cpu.usage.system: cpu.usage.system
189-
container.cpu.usage.total: cpu.usage.total
190-
container.cpu.usage.usermode: cpu.usage.usermode
191-
container.memory.active_anon: memory.stats.active_anon
192-
container.memory.active_file: memory.stats.active_file
193-
container.memory.cache: memory.stats.cache
194-
container.memory.dirty: memory.stats.dirty
195-
container.memory.hierarchical_memory_limit: memory.stats.hierarchical_memory_limit
196-
container.memory.hierarchical_memsw_limit: memory.stats.hierarchical_memsw_limit
197-
container.memory.inactive_anon: memory.stats.inactive_anon
198-
container.memory.inactive_file: memory.stats.inactive_file
199-
container.memory.mapped_file: memory.stats.mapped_file
200-
container.memory.percent: memory.percent
201-
container.memory.pgfault: memory.stats.pgfault
202-
container.memory.pgmajfault: memory.stats.pgmajfault
203-
container.memory.pgpgin: memory.stats.pgpgin
204-
container.memory.pgpgout: memory.stats.pgpgout
205-
container.memory.rss: memory.stats.rss
206-
container.memory.rss_huge: memory.stats.rss_huge
207-
container.memory.shmem: memory.stats.shmem
208-
container.memory.swap: memory.stats.swap
209-
container.memory.total_active_anon: memory.stats.total_active_anon
210-
container.memory.total_active_file: memory.stats.total_active_file
211-
container.memory.total_cache: memory.stats.total_cache
212-
container.memory.total_dirty: memory.stats.total_dirty
213-
container.memory.total_inactive_anon: memory.stats.total_inactive_anon
214-
container.memory.total_inactive_file: memory.stats.total_inactive_file
215-
container.memory.total_mapped_file: memory.stats.total_mapped_file
216-
container.memory.total_pgfault: memory.stats.total_pgfault
217-
container.memory.total_pgmajfault: memory.stats.total_pgmajfault
218-
container.memory.total_pgpgin: memory.stats.total_pgpgin
219-
container.memory.total_pgpgout: memory.stats.total_pgpgout
220-
container.memory.total_rss: memory.stats.total_rss
221-
container.memory.total_rss_huge: memory.stats.total_rss_huge
222-
container.memory.total_shmem: memory.stats.total_shmem
223-
container.memory.total_swap: memory.stats.total_swap
224-
container.memory.total_unevictable: memory.stats.total_unevictable
225-
container.memory.total_writeback: memory.stats.total_writeback
226-
container.memory.unevictable: memory.stats.unevictable
227-
container.memory.usage.limit: memory.usage.limit
228-
container.memory.usage.max: memory.usage.max
229-
container.memory.usage.total: memory.usage.total
230-
container.memory.writeback: memory.stats.writeback
231-
container.network.io.usage.rx_bytes: network.usage.rx_bytes
232-
container.network.io.usage.rx_dropped: network.usage.rx_dropped
233-
container.network.io.usage.rx_errors: network.usage.rx_errors
234-
container.network.io.usage.rx_packets: network.usage.rx_packets
235-
container.network.io.usage.tx_bytes: network.usage.tx_bytes
236-
container.network.io.usage.tx_dropped: network.usage.tx_dropped
237-
container.network.io.usage.tx_errors: network.usage.tx_errors
238-
container.network.io.usage.tx_packets: network.usage.tx_packets
239-
add_dimensions:
240-
plugin: docker
241-
copy_dimensions:
242-
container.name: plugin_instance
243-
244-
# container network metrics
245-
- action: split_metric
246-
metric_name: k8s.pod.network.io
247-
dimension_key: direction
248-
mapping:
249-
receive: pod_network_receive_bytes_total
250-
transmit: pod_network_transmit_bytes_total
251-
- action: split_metric
252-
metric_name: k8s.pod.network.errors
253-
dimension_key: direction
254-
mapping:
255-
receive: pod_network_receive_errors_total
256-
transmit: pod_network_transmit_errors_total
25761
25862
# compute cpu utilization metrics: cpu.utilization_per_core (excluded by default) and cpu.utilization
25963
- action: delta_metric
@@ -402,18 +206,17 @@ translation_rules:
402206
- state
403207
404208
# convert memory metrics
209+
- action: copy_metrics
210+
mapping:
211+
system.memory.usage: system.memory.usage.copy
212+
213+
# memory.used needed to calculate memory.utilization
405214
- action: split_metric
406-
metric_name: system.memory.usage
215+
metric_name: system.memory.usage.copy
407216
dimension_key: state
408217
mapping:
409-
buffered: memory.buffered
410-
cached: memory.cached
411-
free: memory.free
412-
slab_reclaimable: memory.slab_recl
413-
slab_unreclaimable: memory.slab_unrecl
414218
used: memory.used
415219
416-
417220
# Translations to derive filesystem metrics
418221
## disk.total, required to compute disk.utilization
419222
- action: copy_metrics
@@ -425,7 +228,6 @@ translation_rules:
425228
without_dimensions:
426229
- state
427230
428-
429231
## disk.summary_total, required to compute disk.summary_utilization
430232
- action: copy_metrics
431233
mapping:
@@ -444,22 +246,16 @@ translation_rules:
444246
- device
445247
- type
446248
249+
## df_complex.used needed to calculate disk.utilization
250+
- action: copy_metrics
251+
mapping:
252+
system.filesystem.usage: system.filesystem.usage.copy
447253
448-
## other filesystem metrics
449254
- action: split_metric
450-
metric_name: system.filesystem.usage
255+
metric_name: system.filesystem.usage.copy
451256
dimension_key: state
452257
mapping:
453-
free: df_complex.free
454-
reserved: df_complex.reserved
455258
used: df_complex.used
456-
- action: split_metric
457-
metric_name: system.filesystem.inodes.usage
458-
dimension_key: state
459-
mapping:
460-
free: df_inodes.free
461-
used: df_inodes.used
462-
463259
464260
## disk.utilization
465261
- action: calculate_new_metric
@@ -533,6 +329,7 @@ translation_rules:
533329
mapping:
534330
disk.ops: disk_ops.total
535331
332+
## TODO remove after MEAT-2298
536333
- action: rename_dimension_keys
537334
metric_names:
538335
system.disk.merged: true
@@ -545,7 +342,6 @@ translation_rules:
545342
mapping:
546343
system.disk.pending_operations: disk_ops.pending
547344
548-
549345
# Translations to derive Network I/O metrics.
550346
551347
## Calculate extra network I/O metrics system.network.packets.total and system.network.io.total.
@@ -579,6 +375,7 @@ translation_rules:
579375
- direction
580376
- device
581377
378+
## TODO remove after MEAT-2298
582379
## Rename dimension device to interface.
583380
- action: rename_dimension_keys
584381
metric_names:
@@ -589,7 +386,6 @@ translation_rules:
589386
mapping:
590387
device: interface
591388
592-
593389
# memory utilization
594390
- action: calculate_new_metric
595391
metric_name: memory.utilization
@@ -624,16 +420,11 @@ translation_rules:
624420
major: vmpage_io.swap.out
625421
minor: vmpage_io.memory.out
626422
627-
- action: split_metric
628-
metric_name: system.paging.faults
629-
dimension_key: type
630-
mapping:
631-
major: vmpage_faults.majflt
632-
minor: vmpage_faults.minflt
633-
634423
# remove redundant metrics
635424
- action: drop_metrics
636425
metric_names:
426+
system.filesystem.usage.copy: true
427+
df_complex.used: true
637428
df_complex.used_total: true
638429
disk.ops: true
639430
disk.summary_total: true
@@ -643,5 +434,7 @@ translation_rules:
643434
system.cpu.delta: true
644435
system.paging.operations.page_in: true
645436
system.paging.operations.page_out: true
437+
system.memory.usage.copy: true
438+
memory.used: true
646439
`
647440
)

exporter/signalfxexporter/translation/default_metrics.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ exclude_metrics:
182182
- /^(?i:(container)|(k8s\.node)|(k8s\.pod))\.memory\.major_page_faults$/
183183
- /^(?i:(container)|(k8s\.node)|(k8s\.pod))\.memory\.page_faults$/
184184
- /^(?i:(container)|(k8s\.node)|(k8s\.pod))\.memory\.rss$/
185-
- /^(?i:(container)|(k8s\.node)|(k8s\.pod))\.memory\.usage$/
185+
- /^(?i:(k8s\.node)|(k8s\.pod))\.memory\.usage$/
186186
- /^(?i:(container)|(k8s\.node)|(k8s\.pod))\.memory\.working_set$/
187187
188188
# matches (k8s.node|k8s.pod).filesystem...

0 commit comments

Comments
 (0)