Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[cilium] Add support for v1.14 metrics #17447

Merged
Merged
1 change: 1 addition & 0 deletions cilium/changelog.d/17447.added
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[cilium] Add support for v1.14 metrics
jaredledvina marked this conversation as resolved.
Show resolved Hide resolved
15 changes: 15 additions & 0 deletions cilium/datadog_checks/cilium/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
'cilium_process_start_time_seconds': 'process.start_time.seconds',
'cilium_process_virtual_memory_bytes': 'process.virtual_memory.bytes',
'cilium_process_virtual_memory_max_bytes': 'process.virtual_memory.max.bytes',
'cilium_services_events_total': 'services.events.total',
'cilium_subprocess_start_total': 'subprocess.start.total',
'cilium_triggers_policy_update_call_duration_seconds': 'triggers_policy.update_call_duration.seconds',
'cilium_triggers_policy_update_folds': 'triggers_policy.update_folds',
Expand Down Expand Up @@ -99,8 +100,13 @@
'cilium_fqdn_active_ips': 'fqdn.active_ips',
'cilium_fqdn_alive_zombie_connections': 'fqdn.alive_zombie_connections',
# Cilium 1.14+
'cilium_endpoint': 'endpoint.count',
'cilium_endpoint_max_ifindex': 'endpoint.max_ifindex',
'cilium_cidrgroup_policies': 'cidrgroup.policies',
'cilium_kvstore_sync_queue_size': 'kvstore.sync_queue_size',
'cilium_kvstore_initial_sync_completed': 'kvstore.initial_sync_completed',
'cilium_k8s_client_rate_limiter_duration_seconds': 'k8s_client.rate_limiter_duration.seconds',
'cilium_policy_change_total': 'policy.change.total',
}

OPERATOR_V2_OVERRIDES = {
Expand Down Expand Up @@ -176,6 +182,15 @@
'cilium_operator_ipam_interface_candidates': 'operator.ipam.interface_candidates',
'cilium_operator_ipam_empty_interface_slots': 'operator.ipam.empty_interface_slots',
'cilium_operator_ipam_ip_allocation_ops': 'operator.ipam.ip_allocation_ops',
# Cilium 1.14+
'cilium_operator_ces_sync_total': 'operator.ces.sync.total',
'cilium_operator_ipam_allocation_duration_seconds': 'operator.ipam.allocation.duration.seconds',
'cilium_operator_ipam_available_interfaces': 'operator.ipam.available_interfaces',
'cilium_operator_ipam_available_ips': 'operator.ipam.available_ips',
'cilium_operator_ipam_ip_release_ops': 'operator.ipam.ip_release_ops',
'cilium_operator_ipam_needed_ips': 'operator.ipam.needed_ips',
'cilium_operator_ipam_release_duration_seconds': 'operator.ipam.release.duration.seconds',
'cilium_operator_ipam_used_ips': 'operator.ipam.used_ips',
}

AGENT_V2_METRICS = deepcopy(AGENT_METRICS)
Expand Down
22 changes: 22 additions & 0 deletions cilium/metadata.csv

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions cilium/tests/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,16 @@
"cilium.kvstore.initial_sync_completed",
]

AGENT_V2_METRICS_1_14 = [
# E2E not updated yet to 1.14+ of Cilium
'cilium.cidrgroup.policies',
'cilium.k8s_client.rate_limiter_duration.seconds.bucket',
'cilium.k8s_client.rate_limiter_duration.seconds.count',
'cilium.k8s_client.rate_limiter_duration.seconds.sum',
'cilium.policy.change.count',
'cilium.services.events.count',
]

AGENT_V1_METRICS = [
"cilium.agent.api_process_time.seconds.count",
"cilium.agent.api_process_time.seconds.sum",
Expand Down Expand Up @@ -220,6 +230,15 @@
"cilium.kvstore.initial_sync_completed",
]

AGENT_V1_METRICS_1_14 = [
# E2E not updated yet to 1.14+ of Cilium
'cilium.cidrgroup.policies',
'cilium.k8s_client.rate_limiter_duration.seconds.count',
'cilium.k8s_client.rate_limiter_duration.seconds.sum',
'cilium.policy.change.total',
'cilium.services.events.total',
]

# Some types changed moving from v1 to v2. We keep v2 in the metadata.csv file.
AGENT_V1_METRICS_EXCLUDE_METADATA_CHECK = [
"cilium.agent.api_process_time.seconds.count",
Expand All @@ -243,6 +262,8 @@
"cilium.policy.implementation_delay.sum",
"cilium.proxy.upstream_reply.seconds.count",
"cilium.proxy.upstream_reply.seconds.sum",
'cilium.k8s_client.rate_limiter_duration.seconds.count',
'cilium.k8s_client.rate_limiter_duration.seconds.sum',
]

OPERATOR_V2_PROCESS_METRICS = [
Expand Down Expand Up @@ -335,6 +356,21 @@
"cilium.operator.ipam.ip_allocation_ops.count",
] + OPERATOR_V2_PROCESS_METRICS

OPERATOR_V2_METRICS_1_14 = [
# E2E not updated yet to 1.14+ of Cilium
"cilium.operator.ipam.allocation.duration.seconds.bucket",
"cilium.operator.ipam.allocation.duration.seconds.sum",
"cilium.operator.ipam.allocation.duration.seconds.count",
"cilium.operator.ipam.available_interfaces",
"cilium.operator.ipam.available_ips",
"cilium.operator.ipam.ip_release_ops.count",
"cilium.operator.ipam.needed_ips",
"cilium.operator.ipam.release.duration.seconds.bucket",
"cilium.operator.ipam.release.duration.seconds.sum",
"cilium.operator.ipam.release.duration.seconds.count",
"cilium.operator.ipam.used_ips",
]

# Not available in test metric fixtures
ADDL_OPERATOR_AWS_METRICS = [
"cilium.operator.ec2.api.rate_limit.duration.seconds.sum",
Expand Down
28 changes: 28 additions & 0 deletions cilium/tests/fixtures/agent_metrics.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1290,3 +1290,31 @@ cilium_kvstore_initial_sync_completed{scope="identities/v1",source_cluster="foo"
cilium_kvstore_initial_sync_completed{scope="identities/v1",source_cluster="foo", action="read"} 1
cilium_kvstore_initial_sync_completed{scope="ip/v1",source_cluster="foo", action="write"} 1
cilium_kvstore_initial_sync_completed{scope="ip/v1",source_cluster="foo", action="read"} 1
# HELP cilium_services_events_total Number of services events labeled by action type
# TYPE cilium_services_events_total counter
cilium_services_events_total{action="add"} 117
cilium_services_events_total{action="update"} 1063
# HELP cilium_cidrgroup_policies Number of CNPs and CCNPs referencing at least one CiliumCIDRGroup
# TYPE cilium_cidrgroup_policies gauge
cilium_cidrgroup_policies 0
# HELP cilium_k8s_client_rate_limiter_duration_seconds Kubernetes client rate limiter latency in seconds. Broken down by path and method.
# TYPE cilium_k8s_client_rate_limiter_duration_seconds histogram
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="0.005"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="0.025"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="0.1"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="0.25"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="0.5"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="1"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="2"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="4"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="8"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="15"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="30"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="60"} 54
cilium_k8s_client_rate_limiter_duration_seconds_bucket{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}",le="+Inf"} 54
cilium_k8s_client_rate_limiter_duration_seconds_sum{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}"} 0.00015540600000000005
cilium_k8s_client_rate_limiter_duration_seconds_count{method="DELETE",path="/apis/cilium.io/v2/namespaces/{namespace}/ciliumendpoints/{name}"} 54
# HELP cilium_policy_change_total Number of policy changes by outcome
# TYPE cilium_policy_change_total counter
cilium_policy_change_total{outcome="fail"} 106
cilium_policy_change_total{outcome="success"} 24128