philipz / opentelemetry-operator-sample

Toolbox of recipes, samples, and guides for using the OpenTelemetry Operator on Google Cloud

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenTelemetry Operator Sample

環境建置及設置步驟

This repo hosts samples for working with the OpenTelemetry Operator on GCP.

Running the Operator

Prerequisites

For GKE Autopilot, install cert-manager with the following Helm commands:

helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install \
  --create-namespace \
  --namespace cert-manager \
  --set installCRDs=true \
  --set global.leaderElection.namespace=cert-manager \
  --set extraArgs={--issuer-ambient-credentials=true} \
  cert-manager jetstack/cert-manager

Firewall rules

By default, private GKE clusters may not allow the necessary ports for cert-manager to work, resulting in an error like the following:

Error from server (InternalError): error when creating "collector-config.yaml": Internal error occurred: failed calling webhook "mopentelemetrycollector.kb.io": failed to call webhook: Post "https://opentelemetry-operator-webhook-service.opentelemetry-operator-system.svc:443/mutate-opentelemetry-io-v1alpha1-opentelemetrycollector?timeout=10s": context deadline exceeded

To fix this, create a firewall rule for your cluster with the following command:

gcloud compute firewall-rules create cert-manager-9443 \
  --source-ranges ${GKE_MASTER_CIDR} \
  --target-tags ${GKE_MASTER_TAG}  \
  --allow TCP:9443

$GKE_MASTER_CIDR and $GKE_MASTER_TAG can be found by following the steps in the firewall docs listed above.

Installing the OpenTelemetry Operator

Install the latest release of the Operator with:

kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml

Starting the Collector

Set up an instance of the OpenTelemetry Collector by creating an OpenTelemetryCollector object. The one in this repo sets up a basic OTLP receiver and logging exporter:

kubectl apply -f collector-config.yaml

Others: https://github.com/GoogleCloudPlatform/opentelemetry-collector-builder-sample/blob/main/deploy/gke/simple/otel-config.yaml

Auto-instrumenting Applications

The Operator offers auto-instrumentation of application pods by adding an annotation to the Pod spec.

First, create an Instrumentation Custom Resource that contains the settings for the instrumentation. We have provided a sample resource in instrumentation.yaml:

kubectl apply -f instrumentation.yaml

With a Collector and auto-instrumentation set up, you can experiment with it using one of the sample applications, or skip right to the recipes if you already have an application running.

Sample Applications

The sample-apps/ folder contains basic apps to demonstrate collecting traces with the operator in various languages:

Each of these sample apps works well with the recipes listed below.

Recipes

The recipes directory holds different sample use cases for working with the operator and auto-instrumentation along with setup guides for each recipe. Currently there are:

Contributing

See CONTRIBUTING.md for details.

License

Apache 2.0; see LICENSE for details.

Certificate-manager DNS authorization

Create a DNS authorization

gcloud certificate-manager dns-authorizations create cloudtrace-daslab-online \
     --domain="cloudtrace.daslab.online"
gcloud certificate-manager dns-authorizations describe cloudtrace-daslab-online

About

Toolbox of recipes, samples, and guides for using the OpenTelemetry Operator on Google Cloud

License:Apache License 2.0


Languages

Language:Java 28.7%Language:Makefile 27.6%Language:Dockerfile 13.3%Language:Go 10.9%Language:JavaScript 10.1%Language:Python 9.4%