Skip to content

Commit

Permalink
feat: Add OpenTelemetry addon (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
ilchebedelovski authored Jan 24, 2023
1 parent 1a5b1c9 commit 99b2dea
Show file tree
Hide file tree
Showing 9 changed files with 86 additions and 1 deletion.
2 changes: 2 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,5 @@ fi
export KKA_AOA_EXCLUDE_PROMETHEUSSTACK="${KKA_AOA_EXCLUDE_PROMETHEUSSTACK:-false}"
# Dex
export KKA_AOA_EXCLUDE_DEX="${KKA_AOA_EXCLUDE_DEX:-false}"
# OpenTelemetry
export KKA_AOA_EXCLUDE_OPENTELEMETRY="${KKA_AOA_EXCLUDE_OPENTELEMETRY:-false}"
1 change: 1 addition & 0 deletions .github/workflows/integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,5 @@ jobs:
GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
KKA_AOA_EXCLUDE_DEX: true
KKA_AOA_EXCLUDE_PROMETHEUSSTACK: true
KKA_AOA_EXCLUDE_OPENTELEMETRY: true
KKA_K8S_VERSION: ${{ matrix.KKA_K8S_VERSION }}
11 changes: 11 additions & 0 deletions addons/opentelemetry/opentelemetry-collector/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v2
name: opentelemetry-collector
description: OpenTelemetry Collector Helm chart for Kubernetes
type: application
version: v0.0.1 # x-release-please-version
dependencies:
- name: opentelemetry-collector
alias: otlp-collector-source
version: 0.45.2
repository: https://open-telemetry.github.io/opentelemetry-helm-charts
condition: otlp-collector-source.enabled
34 changes: 34 additions & 0 deletions addons/opentelemetry/opentelemetry-collector/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
otlp-collector-source:
mode: deployment

replicaCount: 1

presets:
clusterMetrics:
enabled: true

ports:
jaeger-compact:
enabled: false
jaeger-thrift:
enabled: false
jaeger-grpc:
enabled: false

config:
receivers:
jaeger: null
prometheus: null
zipkin: null
service:
pipelines:
traces:
receivers:
- otlp
metrics: null
logs: null

resources:
limits:
cpu: 512m
memory: 512Mi
11 changes: 11 additions & 0 deletions addons/opentelemetry/opentelemetry-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v2
name: opentelemetry-operator
description: OpenTelemetry Operator Helm chart for Kubernetes
type: application
version: v0.0.1 # x-release-please-version
dependencies:
- name: opentelemetry-operator
alias: otlp-operator-source
version: 0.21.2
repository: https://open-telemetry.github.io/opentelemetry-helm-charts
condition: otlp-operator-source.enabled
3 changes: 3 additions & 0 deletions addons/opentelemetry/opentelemetry-operator/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
otlp-operator-source:

replicaCount: 1
12 changes: 11 additions & 1 deletion app-of-apps/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ apps:
name: cert-manager
path: addons/cert-manager/
targetNamespace: cert-manager
excluded: true
excluded: false

# Dex - https://dexidp.io/
dex:
Expand Down Expand Up @@ -70,3 +70,13 @@ apps:
name: knative-eventing
path: addons/knative/eventing/
targetNamespace: knative-eventing

# OpenTelemetry - https://opentelemetry.io/
opentelemetry-collector:
name: opentelemetry-collector
path: addons/opentelemetry/opentelemetry-collector/
targetNamespace: opentelemetry
opentelemetry-operator:
name: opentelemetry-operator
path: addons/opentelemetry/opentelemetry-operator/
targetNamespace: opentelemetry
9 changes: 9 additions & 0 deletions docs/ADDONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,15 @@ apps:
excluded: true
```
### OpenTelemetry
OpenTelemetry is used to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software’s performance and behavior. OpenTelemetry is generally available across several languages and is suitable for use. Depending on the project requirements, the OpenTelemetry addon can be enabled and disabled via an ENV variable.
##### Collector
The OpenTelemetry Collector offers a vendor-agnostic implementation of how to receive, process and export telemetry data. It removes the need to run, operate, and maintain multiple agents/collectors.
##### Operator
The OpenTelemetry Operator is an implementation of a Kubernetes Operator, it manages collectors and auto-instrumentation of the workload using OpenTelemetry instrumentation libraries.
### Additional Notes
We are constantly evaluating new addons that might become standards in the industry. That's not high priority, though, since our main goal is to keep this repository straight to the point and minimize overhead on the users' clusters.
Expand Down
4 changes: 4 additions & 0 deletions manifests/app-of-apps.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ spec:
excluded: ${KKA_AOA_EXCLUDE_KNATIVE}
kube-prometheus-stack:
excluded: ${KKA_AOA_EXCLUDE_PROMETHEUSSTACK}
opentelemetry-collector:
excluded: ${KKA_AOA_EXCLUDE_OPENTELEMETRY}
opentelemetry-operator:
excluded: ${KKA_AOA_EXCLUDE_OPENTELEMETRY}
syncPolicy:
automated:
prune: true
Expand Down

0 comments on commit 99b2dea

Please sign in to comment.