|
| 1 | +receivers: |
| 2 | + prometheus/cw_k8s_ci_v0_karpenter: |
| 3 | + config: |
| 4 | + global: |
| 5 | + scrape_interval: {{.CollectionInterval}} |
| 6 | + scrape_timeout: {{.ScrapeTimeout}} |
| 7 | + scrape_configs: |
| 8 | + - job_name: karpenter |
| 9 | + scrape_interval: {{.CollectionInterval}} |
| 10 | + scrape_timeout: {{.ScrapeTimeout}} |
| 11 | + metrics_path: /metrics |
| 12 | + kubernetes_sd_configs: |
| 13 | + - role: pod |
| 14 | + namespaces: |
| 15 | + names: |
| 16 | + - kube-system |
| 17 | + relabel_configs: |
| 18 | + - source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name] |
| 19 | + regex: karpenter |
| 20 | + action: keep |
| 21 | + - source_labels: [__meta_kubernetes_pod_container_port_name] |
| 22 | + regex: http-metrics |
| 23 | + action: keep |
| 24 | + - source_labels: [__meta_kubernetes_pod_name] |
| 25 | + target_label: pod |
| 26 | + - source_labels: [__meta_kubernetes_namespace] |
| 27 | + target_label: namespace |
| 28 | + - source_labels: [__meta_kubernetes_pod_node_name] |
| 29 | + target_label: node |
| 30 | +processors: |
| 31 | + filter/cw_k8s_ci_v0_scrape_metadata: |
| 32 | + error_mode: ignore |
| 33 | + metrics: |
| 34 | + metric: |
| 35 | + - IsMatch(name, "^(up|scrape_duration_seconds|scrape_samples_scraped|scrape_samples_post_metric_relabeling|scrape_series_added)$") |
| 36 | + transform/cw_k8s_ci_v0_set_unit: |
| 37 | + error_mode: ignore |
| 38 | + metric_statements: |
| 39 | + - context: metric |
| 40 | + statements: |
| 41 | + - set(unit, "s") where IsMatch(name, ".*_seconds(_total)?$") |
| 42 | + - set(unit, "ms") where IsMatch(name, ".*_milliseconds(_total)?$") |
| 43 | + - set(unit, "us") where IsMatch(name, ".*_microseconds(_total)?$") |
| 44 | + - set(unit, "ns") where IsMatch(name, ".*_nanoseconds(_total)?$") |
| 45 | + - set(unit, "By") where IsMatch(name, ".*_bytes(_total)?$") |
| 46 | + - set(unit, "KBy") where IsMatch(name, ".*_kilobytes(_total)?$") |
| 47 | + - set(unit, "MBy") where IsMatch(name, ".*_megabytes(_total)?$") |
| 48 | + - set(unit, "GBy") where IsMatch(name, ".*_gigabytes(_total)?$") |
| 49 | + - set(unit, "KiBy") where IsMatch(name, ".*_kibibytes(_total)?$") |
| 50 | + - set(unit, "MiBy") where IsMatch(name, ".*_mebibytes(_total)?$") |
| 51 | + - set(unit, "GiBy") where IsMatch(name, ".*_gibibytes(_total)?$") |
| 52 | + - set(unit, "Cel") where IsMatch(name, ".*_celsius$") |
| 53 | + - set(unit, "Hz") where IsMatch(name, ".*_hertz$") |
| 54 | + - set(unit, "1") where IsMatch(name, ".*_ratio$") |
| 55 | + - set(unit, "%") where IsMatch(name, ".*_percent$") |
| 56 | + - set(unit, "V") where IsMatch(name, ".*_volts$") |
| 57 | + - set(unit, "W") where IsMatch(name, ".*_watts$") |
| 58 | + - set(unit, "J") where IsMatch(name, ".*_joules$") |
| 59 | + - set(unit, "A") where IsMatch(name, ".*_amperes$") |
| 60 | + - set(unit, "m") where IsMatch(name, ".*_meters(_total)?$") |
| 61 | + - set(unit, "1") where unit == "" and IsMatch(name, ".*_total$") |
| 62 | + metricstarttime/cw_k8s_ci_v0: {} |
| 63 | + transform/cw_k8s_ci_v0_set_scope_karpenter: |
| 64 | + error_mode: ignore |
| 65 | + metric_statements: |
| 66 | + - context: scope |
| 67 | + statements: |
| 68 | + - set(scope.name, "github.com/aws/karpenter") |
| 69 | + - set(scope.schema_url, "") |
| 70 | + - set(attributes["cloudwatch.source"], "cloudwatch-agent") |
| 71 | + - set(attributes["cloudwatch.solution"], "k8s-otel-container-insights") |
| 72 | + - set(attributes["cloudwatch.pipeline"], "karpenter") |
| 73 | + transform/cw_k8s_ci_v0_set_cluster_name: |
| 74 | + error_mode: ignore |
| 75 | + metric_statements: |
| 76 | + - context: datapoint |
| 77 | + statements: |
| 78 | + - set(resource.attributes["k8s.cluster.name"], "{{.ClusterName}}") |
| 79 | + groupbyattrs/cw_k8s_ci_v0_karpenter: |
| 80 | + keys: |
| 81 | + - pod |
| 82 | + - namespace |
| 83 | + - node |
| 84 | + transform/cw_k8s_ci_v0_karpenter_promote: |
| 85 | + error_mode: ignore |
| 86 | + metric_statements: |
| 87 | + - context: resource |
| 88 | + statements: |
| 89 | + - set(attributes["k8s.pod.name"], attributes["pod"]) where attributes["pod"] != nil |
| 90 | + - set(attributes["k8s.namespace.name"], attributes["namespace"]) where attributes["namespace"] != nil |
| 91 | + - set(attributes["k8s.node.name"], attributes["node"]) where attributes["node"] != nil |
| 92 | + - delete_key(attributes, "net.host.name") where attributes["net.host.name"] != nil |
| 93 | + - delete_key(attributes, "net.host.port") where attributes["net.host.port"] != nil |
| 94 | + - delete_key(attributes, "url.scheme") where attributes["url.scheme"] != nil |
| 95 | + - context: datapoint |
| 96 | + statements: |
| 97 | + - set(attributes["pod"], resource.attributes["pod"]) where resource.attributes["pod"] != nil |
| 98 | + - set(attributes["namespace"], resource.attributes["namespace"]) where resource.attributes["namespace"] != nil |
| 99 | + - set(attributes["node"], resource.attributes["node"]) where resource.attributes["node"] != nil |
| 100 | + k8sattributes/cw_k8s_ci_v0_pod: |
| 101 | + auth_type: serviceAccount |
| 102 | + extract: |
| 103 | + labels: |
| 104 | + - from: pod |
| 105 | + key_regex: (.*) |
| 106 | + tag_name: k8s.pod.label.$1 |
| 107 | + metadata: |
| 108 | + - k8s.pod.uid |
| 109 | + - k8s.node.name |
| 110 | + - k8s.deployment.name |
| 111 | + - k8s.statefulset.name |
| 112 | + - k8s.daemonset.name |
| 113 | + - k8s.replicaset.name |
| 114 | + - k8s.job.name |
| 115 | + - k8s.cronjob.name |
| 116 | + passthrough: false |
| 117 | + exclude: |
| 118 | + pods: [] |
| 119 | + pod_association: |
| 120 | + - sources: |
| 121 | + - from: resource_attribute |
| 122 | + name: k8s.pod.name |
| 123 | + - from: resource_attribute |
| 124 | + name: k8s.namespace.name |
| 125 | + transform/cw_k8s_ci_v0_set_workload: |
| 126 | + error_mode: ignore |
| 127 | + metric_statements: |
| 128 | + - context: datapoint |
| 129 | + statements: |
| 130 | + - set(resource.attributes["k8s.workload.name"], resource.attributes["k8s.deployment.name"]) where resource.attributes["k8s.workload.name"] == nil and resource.attributes["k8s.deployment.name"] != nil |
| 131 | + - set(resource.attributes["k8s.workload.type"], "Deployment") where resource.attributes["k8s.workload.type"] == nil and resource.attributes["k8s.deployment.name"] != nil |
| 132 | + - set(resource.attributes["k8s.workload.name"], resource.attributes["k8s.statefulset.name"]) where resource.attributes["k8s.workload.name"] == nil and resource.attributes["k8s.statefulset.name"] != nil |
| 133 | + - set(resource.attributes["k8s.workload.type"], "StatefulSet") where resource.attributes["k8s.workload.type"] == nil and resource.attributes["k8s.statefulset.name"] != nil |
| 134 | + - set(resource.attributes["k8s.workload.name"], resource.attributes["k8s.daemonset.name"]) where resource.attributes["k8s.workload.name"] == nil and resource.attributes["k8s.daemonset.name"] != nil |
| 135 | + - set(resource.attributes["k8s.workload.type"], "DaemonSet") where resource.attributes["k8s.workload.type"] == nil and resource.attributes["k8s.daemonset.name"] != nil |
| 136 | + - set(resource.attributes["k8s.workload.name"], resource.attributes["k8s.job.name"]) where resource.attributes["k8s.workload.name"] == nil and resource.attributes["k8s.job.name"] != nil |
| 137 | + - set(resource.attributes["k8s.workload.type"], "Job") where resource.attributes["k8s.workload.type"] == nil and resource.attributes["k8s.job.name"] != nil |
| 138 | + - set(resource.attributes["k8s.workload.name"], resource.attributes["k8s.cronjob.name"]) where resource.attributes["k8s.workload.name"] == nil and resource.attributes["k8s.cronjob.name"] != nil |
| 139 | + - set(resource.attributes["k8s.workload.type"], "CronJob") where resource.attributes["k8s.workload.type"] == nil and resource.attributes["k8s.cronjob.name"] != nil |
| 140 | + - set(resource.attributes["k8s.workload.name"], resource.attributes["k8s.replicaset.name"]) where resource.attributes["k8s.workload.name"] == nil and resource.attributes["k8s.replicaset.name"] != nil |
| 141 | + - set(resource.attributes["k8s.workload.type"], "ReplicaSet") where resource.attributes["k8s.workload.type"] == nil and resource.attributes["k8s.replicaset.name"] != nil |
| 142 | + resourcedetection/cw_k8s_ci_v0_karpenter: |
| 143 | + detectors: [eks, ec2] |
| 144 | + override: false |
| 145 | + timeout: 2s |
| 146 | + ec2: |
| 147 | + resource_attributes: |
| 148 | + host.id: |
| 149 | + enabled: false |
| 150 | + host.type: |
| 151 | + enabled: false |
| 152 | + host.name: |
| 153 | + enabled: false |
| 154 | + host.image.id: |
| 155 | + enabled: false |
| 156 | + cloud.provider: |
| 157 | + enabled: true |
| 158 | + cloud.platform: |
| 159 | + enabled: true |
| 160 | + cloud.region: |
| 161 | + enabled: true |
| 162 | + cloud.availability_zone: |
| 163 | + enabled: false |
| 164 | + cloud.account.id: |
| 165 | + enabled: true |
| 166 | + transform/cw_k8s_ci_v0_clear_schema_url: |
| 167 | + error_mode: ignore |
| 168 | + metric_statements: |
| 169 | + - context: resource |
| 170 | + statements: |
| 171 | + - set(resource.schema_url, "") |
| 172 | + transform/cw_k8s_ci_v0_set_cloud_resource_id: |
| 173 | + error_mode: ignore |
| 174 | + metric_statements: |
| 175 | + - context: resource |
| 176 | + statements: |
| 177 | + - set(attributes["cloud.resource_id"], Concat(["arn:aws:eks:", attributes["cloud.region"], ":", attributes["cloud.account.id"], ":cluster/", attributes["k8s.cluster.name"]], "")) where attributes["cloud.region"] != nil and attributes["cloud.account.id"] != nil and attributes["k8s.cluster.name"] != nil |
| 178 | + awsattributelimit/cw_k8s_ci_v0: |
| 179 | + max_total_attributes: 150 |
| 180 | + unconditional_removal_keys: |
| 181 | + - k8s.node.label.topology.kubernetes.io/region |
| 182 | + - k8s.node.label.topology.kubernetes.io/zone |
| 183 | + - k8s.node.label.topology.ebs.csi.aws.com/zone |
| 184 | + - k8s.node.label.node.kubernetes.io/instance-type |
| 185 | + - k8s.node.label.kubernetes.io/hostname |
| 186 | + - k8s.node.label.helm.sh/chart |
| 187 | + - k8s.node.label.release |
| 188 | + - k8s.node.label.eks.amazonaws.com/nodegroup-image |
| 189 | + - k8s.node.label.k8s.io/cloud-provider-aws |
| 190 | + - k8s.node.label.eks.amazonaws.com/sourceLaunchTemplateId |
| 191 | + - k8s.node.label.eks.amazonaws.com/sourceLaunchTemplateVersion |
| 192 | + - k8s.pod.label.pod-template-hash |
| 193 | + - k8s.pod.label.controller-revision-hash |
| 194 | + unconditional_removal_prefixes: |
| 195 | + - k8s.node.label.feature.node.kubernetes.io/ |
| 196 | + - k8s.node.label.beta.kubernetes.io/ |
| 197 | + - k8s.node.label.failure-domain.beta.kubernetes.io/ |
| 198 | + - k8s.node.label.alpha.eksctl.io/ |
| 199 | +service: |
| 200 | + pipelines: |
| 201 | + metrics/cw_k8s_ci_v0_karpenter: |
| 202 | + receivers: |
| 203 | + - prometheus/cw_k8s_ci_v0_karpenter |
| 204 | + processors: |
| 205 | + - filter/cw_k8s_ci_v0_scrape_metadata |
| 206 | + - transform/cw_k8s_ci_v0_set_unit |
| 207 | + - metricstarttime/cw_k8s_ci_v0 |
| 208 | + - transform/cw_k8s_ci_v0_set_scope_karpenter |
| 209 | + - transform/cw_k8s_ci_v0_set_cluster_name |
| 210 | + - groupbyattrs/cw_k8s_ci_v0_karpenter |
| 211 | + - transform/cw_k8s_ci_v0_karpenter_promote |
| 212 | + - k8sattributes/cw_k8s_ci_v0_pod |
| 213 | + - transform/cw_k8s_ci_v0_set_workload |
| 214 | + - resourcedetection/cw_k8s_ci_v0_karpenter |
| 215 | + - transform/cw_k8s_ci_v0_clear_schema_url |
| 216 | + - transform/cw_k8s_ci_v0_set_cloud_resource_id |
| 217 | + - awsattributelimit/cw_k8s_ci_v0 |
| 218 | + exporters: |
| 219 | + - forward/opentelemetry |
| 220 | +connectors: |
| 221 | + forward/opentelemetry: {} |
0 commit comments