You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
added extra pipeline for metrics monitoring (#416)
* add extra pipeline for kubeletstats monitoring in fargate pods
* feat: OB-41415 send sidecar metrics to observe directly and restructure config for extensibility
Customers have been requesting that we support EKS fargate hosted clusters.
To do this, I add a new fargate mode (off my default) that will install an
otel operator, which will use a sidecar container to query metrics from the
pod it is attached to.
Chart to install K8s collection stack based on Observe Agent
6
6
@@ -30,6 +30,10 @@ This service is a *daemonset* which means it runs on every node in the cluster.
30
30
31
31
This service is a *single-instance deployment*. It's critical that this service is only a single instance since otherwise it would produce duplicate data. It is responsible for monitoring the other containers of Observe Agent running by scraping the exposed Prometheus metrics of those agents. It's best practice to separate the monitoring of the agents from the agents themselves since if problems develop in those pipelines, we would need the agent telemetry to keep flowing in order to diagnose.
32
32
33
+
## fargate-collector
34
+
35
+
This service is an *OpenTelemetryCollector*, a custom resource that is managed by a OpenTelemetry Operator (must be installed separately) It is responsible for collecting metrics from nodes when running on AWS Fargate. It injects a sidecar into every pod with the appropriate annotation, and scrapes the API of the kubelet of that node for metrics. Daemonsets are not allowed on fargate, so this service is intended as a replacement for the usual approach for node metric collection with the `node-logs-metrics` daemonset.
36
+
33
37
## Maintainers
34
38
35
39
| Name | Email | Url |
@@ -599,6 +603,10 @@ This service is a *single-instance deployment*. It's critical that this service
| nodeless.enabled | bool |`false`| Enables nodeless mode. Nodeless mode is intended for environments where daemonsets are not supported. |
607
+
| nodeless.hostingPlatform | string |`""`| The hosting platform for the nodeless mode. Valid values are "fargate". |
608
+
| nodeless.metrics.enabled | bool |`false`||
609
+
| nodeless.serviceAccounts | object |`{}`| A map of namespaces to lists of service accounts. If you provide service accounts here we will attach a cluster role and binding granting the service accounts permission to the relevant Kubernetes APIs needed to collect metrics. If empty, you will need to manually grant the service accounts the necessary permissions. Example: serviceAccounts: default: ["app1-sa", "app2-sa"] fargate-ns: ["fargate-app-sa"]|
Copy file name to clipboardExpand all lines: charts/agent/README.md.gotmpl
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -31,6 +31,10 @@ This service is a *daemonset* which means it runs on every node in the cluster.
31
31
32
32
This service is a *single-instance deployment*. It's critical that this service is only a single instance since otherwise it would produce duplicate data. It is responsible for monitoring the other containers of Observe Agent running by scraping the exposed Prometheus metrics of those agents. It's best practice to separate the monitoring of the agents from the agents themselves since if problems develop in those pipelines, we would need the agent telemetry to keep flowing in order to diagnose.
33
33
34
+
## fargate-collector
35
+
36
+
This service is an *OpenTelemetryCollector*, a custom resource that is managed by a OpenTelemetry Operator (must be installed separately) It is responsible for collecting metrics from nodes when running on AWS Fargate. It injects a sidecar into every pod with the appropriate annotation, and scrapes the API of the kubelet of that node for metrics. Daemonsets are not allowed on fargate, so this service is intended as a replacement for the usual approach for node metric collection with the `node-logs-metrics` daemonset.
{{- range $namespace, $serviceAccounts := .Values.nodeless.serviceAccounts }}
27
+
{{- if not (kindIs "slice" $serviceAccounts) }}
28
+
{{- fail (printf "nodeless.serviceAccounts[%s] must be a list, but got: %v (type: %s)" $namespace $serviceAccounts (kindOf $serviceAccounts)) }}
29
+
{{- end }}
30
+
{{- if not $serviceAccounts }}
31
+
{{- fail (printf "nodeless.serviceAccounts[%s] is empty. Please provide at least one service account or remove the namespace from the map." $namespace) }}
32
+
{{- end }}
33
+
{{- range $serviceAccounts }}
34
+
{{- if not (kindIs "string" .) }}
35
+
{{- fail (printf "nodeless.serviceAccounts[%s] contains a non-string value: %v. All service account names must be strings." $namespace .) }}
0 commit comments