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

docs: add EDOT colletor kube-stack Helm values #5822

Merged
merged 41 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
8be68d9
docs: add EDOT colletor kube-stack Helm values
rogercoll Oct 18, 2024
e8e06e4
chore: add changelog entry
rogercoll Oct 18, 2024
3e71cbd
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 18, 2024
affbab2
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 18, 2024
6aae642
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 18, 2024
550f2fa
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 18, 2024
e5299d6
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 18, 2024
54e6fbd
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 18, 2024
52ab3bc
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 18, 2024
89cd2a6
fix: values path relative path
rogercoll Oct 18, 2024
f492519
add kube-stack Helm integration test
rogercoll Oct 18, 2024
3d64b6d
fix: relative values file
rogercoll Oct 18, 2024
e4b44e6
ci: load values file with Helm Go package
rogercoll Oct 21, 2024
5b747c4
ci: remove agent's hardcoded image
rogercoll Oct 21, 2024
43414b0
Merge branch 'main' into add_otel_kube_stack
rogercoll Oct 21, 2024
8141358
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 28, 2024
57d4939
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 28, 2024
8190098
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 28, 2024
0513d21
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 28, 2024
4e216ec
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 28, 2024
93887d0
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 28, 2024
6af1d1f
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 28, 2024
3e933b8
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Oct 28, 2024
b034e4e
Merge branch 'main' into add_otel_kube_stack
rogercoll Oct 28, 2024
6f6bb66
add kube-stack values file to Update mage target
rogercoll Nov 29, 2024
b6b592b
Merge branch 'main' into add_otel_kube_stack
rogercoll Nov 29, 2024
e152c18
override elastic secrets
rogercoll Dec 2, 2024
d45161c
fix: parametrize helm release name
rogercoll Dec 2, 2024
8287c6e
ci: eventually check created pods
rogercoll Dec 2, 2024
e779474
test 5min timeout
rogercoll Dec 2, 2024
4423e96
Update deploy/helm/edot-collector/kube-stack/values.yaml
rogercoll Dec 3, 2024
2618bab
Update deploy/helm/edot-collector/kube-stack/README.md
rogercoll Dec 3, 2024
cb6641d
Update deploy/helm/edot-collector/kube-stack/values.yaml
rogercoll Dec 3, 2024
a4d672f
Merge branch 'main' into add_otel_kube_stack
rogercoll Dec 3, 2024
16fdafc
fix: use constant for Helm values paths
rogercoll Dec 9, 2024
17809a8
Update testing/integration/otel_helm_test.go
rogercoll Dec 9, 2024
d807156
fix: reference kube-stack Chart variables
rogercoll Dec 9, 2024
0111a96
assert all pods are running
rogercoll Dec 9, 2024
4fd8be9
Merge branch 'main' into add_otel_kube_stack
rogercoll Dec 9, 2024
5900701
chore: clarify pod description comment
rogercoll Dec 9, 2024
355e9dc
Merge branch 'main' into add_otel_kube_stack
rogercoll Dec 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions changelog/fragments/1729235281-kube-stack-helm-chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Kind can be one of:
# - breaking-change: a change to previously-documented behavior
# - deprecation: functionality that is being removed in a later release
# - bug-fix: fixes a problem in a previous version
# - enhancement: extends functionality but does not break or fix existing behavior
# - feature: new functionality
# - known-issue: problems that we are aware of in a given version
# - security: impacts on the security of a product or a user’s deployment.
# - upgrade: important information for someone upgrading from a prior version
# - other: does not fit into any of the other categories
kind: other

# Change summary; a 80ish characters long description of the change.
summary: add EDOT colletor kube-stack Helm values

# Long description; in case the summary is not enough to describe the change
# this field accommodate a description without length limits.
# NOTE: This field will be rendered only for breaking-change and known-issue kinds at the moment.
#description:

# Affected component; usually one of "elastic-agent", "fleet-server", "filebeat", "metricbeat", "auditbeat", "all", etc.
component: "elastic-agent"

# PR URL; optional; the PR number that added the changeset.
# If not present is automatically filled by the tooling finding the PR where this changelog fragment has been added.
# NOTE: the tooling supports backports, so it's able to fill the original PR number instead of the backport PR number.
# Please provide it if you are adding a fragment for a different PR.
#pr: https://github.com/owner/repo/1234

# Issue URL; optional; the GitHub issue related to this changeset (either closes or is part of).
# If not present is automatically filled by the tooling with the issue linked to the PR number.
#issue: https://github.com/owner/repo/1234
66 changes: 66 additions & 0 deletions deploy/helm/edot-collector/kube-stack/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
## Kube-stack Helm Chart

**More detailed documentation can be found [here](https://github.com/elastic/opentelemetry/blob/main/docs/kubernetes/operator/README.md).**

The [kube-stack Helm Chart](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-kube-stack#readme) is used to manage the installation of the OpenTelemetry operator (including its CRDs) and to configure a suite of EDOT collectors, which instrument various Kubernetes components to enable comprehensive observability and monitoring.

The chart is installed with a provided default [`values.yaml`](./values.yaml) file that can be customized when needed.

### DaemonSet collectors

The OpenTelemetry components deployed within the DaemonSet EDOT collectors are responsible for observing specific signals from each node. To ensure complete data collection, these components must be deployed on every node in the cluster. Failing to do so will result in partial and potentially incomplete data.

The DaemonSet collectors handle the following data:

- Host Metrics: Collects host metrics specific to each node, utilizing the [hostmetrics receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/README.md)
- Kubernetes Metrics: Captures metrics related to the Kubernetes infrastructure on each node, utlilizing [kubeletstats](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/kubeletstatsreceiver/README.md) receiver
- Logs: Utilizes [File Log Receiver receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver#readme) to gather logs from all Pods running on the respective node.
- OTLP Traces: Utilizes [OTLP Receiver]( https://github.com/open-telemetry/opentelemetry-collector/blob/main/receiver/otlpreceiver#readme) which configures both HTTP and GRPC endpoints on the node to receive OTLP trace data.

### Deployment collector

The OpenTelemetry components deployed within a Deployment collector focus on gathering data at the cluster level rather than at individual nodes. A Deployment instance of the collector operates as a standalone (unlike DaemonSet collector instances, which are deployed on every node)

The Deployment collector handles the following data:

- Kubernetes Events: Monitors and collects events occurring across the entire Kubernetes cluster, utilizing [Kubernetes Objects Receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/k8sobjectsreceiver#readme).
- Cluster Metrics: Captures metrics that provide insights into the overall health and performance of the Kubernetes cluster, utilizing [Kubernetes Cluster Receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/k8sclusterreceiver#readme).

### Auto-instrumentation

The Helm Chart is configured to enable zero-code instrumentation using the [Operator's Instrumentation resource](https://github.com/open-telemetry/opentelemetry-operator/?tab=readme-ov-file#opentelemetry-auto-instrumentation-injection) for the following programming languages:

- Go
- Java
- Node.js
- Python
- .NET


### Installation

1. Create the `opentelemetry-operator-system` Kubernetes namespace:
```
$ kubectl create namespace opentelemetry-operator-system
```

2. Create a secret in Kubernetes with the following command.
```
kubectl create -n opentelemetry-operator-system secret generic elastic-secret-otel \
--from-literal=elastic_endpoint='YOUR_ELASTICSEARCH_ENDPOINT' \
--from-literal=elastic_api_key='YOUR_ELASTICSEARCH_API_KEY'
```
Don't forget to replace
- `YOUR_ELASTICSEARCH_ENDPOINT`: your Elasticsearch endpoint (*with* `https://` prefix example: `https://1234567.us-west2.gcp.elastic-cloud.com:443`).
- `YOUR_ELASTICSEARCH_API_KEY`: your Elasticsearch API Key

3. Execute the following commands to deploy the Helm Chart.

```
$ helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
$ helm repo update
$ helm upgrade --install --namespace opentelemetry-operator-system opentelemetry-kube-stack open-telemetry/opentelemetry-kube-stack --values ./values.yaml --version 0.3.3

> [!NOTE]
> Refer to the [compatibility matrix](https://github.com/elastic/opentelemetry/blob/main/docs/kubernetes/operator/README.md#compatibility-matrix) for a complete list of available manifests and associated helm chart versions.
```
Loading
Loading