From b7a3ac6c7749adab4dd14d0984acfcd69c651c64 Mon Sep 17 00:00:00 2001 From: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com> Date: Tue, 23 May 2023 15:56:05 -0400 Subject: [PATCH] rel: Deprecate the opentelemetry-collector chart (#251) ## Which problem is this PR solving? - works towards https://github.com/honeycombio/helm-charts/issues/231 ## Short description of the changes - updates chart.yaml to deprecate the chart - update readme to explicitly list deprecation - update NOTES.txt to warn about deprecation --- charts/opentelemetry-collector/CHANGELOG.md | 4 + charts/opentelemetry-collector/Chart.yaml | 8 +- charts/opentelemetry-collector/README.md | 151 +----------------- .../templates/NOTES.txt | 15 +- 4 files changed, 11 insertions(+), 167 deletions(-) diff --git a/charts/opentelemetry-collector/CHANGELOG.md b/charts/opentelemetry-collector/CHANGELOG.md index a7be0f21..a15603b6 100644 --- a/charts/opentelemetry-collector/CHANGELOG.md +++ b/charts/opentelemetry-collector/CHANGELOG.md @@ -1,5 +1,9 @@ # OpenTelemetry Collector Helm Chart Changelog +## OpenTelemetry Collector v1.3.1 + +- deprecate opentelemetry-collector chart (#251) | [TylerHelmuth](https://github.com/TylerHelmuth) + ## OpenTelemetry Collector v1.3.0 - fix: Updated ordering of CPU/Memory resource metrics (#217) | @robiball diff --git a/charts/opentelemetry-collector/Chart.yaml b/charts/opentelemetry-collector/Chart.yaml index 8929ecd0..de427786 100644 --- a/charts/opentelemetry-collector/Chart.yaml +++ b/charts/opentelemetry-collector/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v2 name: opentelemetry-collector -description: OpenTelemetry Collector for Honeycomb +description: Deprecated OpenTelemetry Collector for Honeycomb type: application -version: 1.3.0 +version: 1.3.1 appVersion: 0.52.0 keywords: - observability @@ -12,6 +12,4 @@ sources: - https://github.com/honeycombio/opentelemetry-collector - https://github.com/honeycombio/opentelemetry-collector-contrib icon: https://opentelemetry.io/img/logos/opentelemetry-horizontal-color.png -maintainers: - - name: puckpuck - email: pierre@honeycomb.io +deprecated: true diff --git a/charts/opentelemetry-collector/README.md b/charts/opentelemetry-collector/README.md index 2d1d3e50..675c10f7 100644 --- a/charts/opentelemetry-collector/README.md +++ b/charts/opentelemetry-collector/README.md @@ -1,9 +1,9 @@ -# Sunset Notice +# Deprecation Notice -The OpenTelemetry Collector for Honeycomb helm chart is being sunset in favor of the [OpenTelemetry community's opentelemetry-collector helm chart](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-collector). +The OpenTelemetry Collector for Honeycomb helm chart is deprecated in favor of the [OpenTelemetry community's opentelemetry-collector helm chart](https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-collector). This community chart provides an overall better experience deploying and managing the collector in kubernetes. -The primary difference between this chart and the community chart is that the community chart does not include a `honeycomb` section for specifying your API key, API host, and dataset name. Instead, you must configure an otlp/otlphttp exporter following [our Collector documentation](https://docs.honeycomb.io/getting-data-in/otel-collector/). Example: +The primary difference between this chart and the community chart is that the community chart does not include a `honeycomb` section for specifying your API key, API host, and dataset name. Instead, you must configure an otlp/otlphttp exporter following [our Collector documentation](https://docs.honeycomb.io/getting-data-in/otel-collector/). Example values.yaml for the OpenTelemetry community's opentelemetry-collector helm chart: ```yaml mode: deployment @@ -26,148 +26,3 @@ config: ``` See https://github.com/honeycombio/helm-charts/issues/231 for more details. - -# OpenTelemetry Collector for Honeycomb - -[OpenTelemetry](https://opentelemetry.io) provides a single set of APIs, libraries, agents, and collector services to -capture distributed traces and metrics from your application. -[Honeycomb](https://honeycomb.io) is built for modern dev teams to see and understand how their production systems are -behaving. Our goal is to give engineers the observability they need to eliminate toil and delight their users. -This helm chart will install the [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector-contrib) -with the OTLP exporter configured to send data to Honeycomb. - -## TL;DR; -```bash -helm repo add honeycomb https://honeycombio.github.io/helm-charts -helm install opentelemetry-collector honeycomb/opentelemetry-collector --set honeycomb.apiKey=YOUR_API_KEY -``` - -## Prerequisites -- Helm 3.0+ -- Kubernetes 1.23+ - -## Installing the Chart -### Using default configuration -By default this chart will deploy an OpenTelemetry Collector as a single replica. A single pipeline will be configured -for traces as follows: -```yaml - receivers: [otlp, jaeger, zipkin] - processors: [memory_limiter, batch] - exporters: [otlp] -``` - -```bash -helm repo add honeycomb https://honeycombio.github.io/helm-charts -helm install opentelemetry-collector honeycomb/opentelemetry-collector --set honeycomb.apiKey=YOUR_API_KEY -``` - -### Specifying Honeycomb dataset name -If not specified this chart will be configured to send all data to a dataset named `opentelemetry-collector`. -If you need to use a different dataset you can specify it using the `honeycomb.dataset` property. -```bash -helm install opentelemetry-collector honeycomb/opentelemetry-collector \ - --set honeycomb.apiKey=YOUR_API_KEY \ - --set honeycomb.dataset=YOUR_DATASET_NAME -``` - -### Using modified collector configuration -The collector's configuration can be overridden via this chart's `config` property. You only need to specify properties -that you want to override. Make sure to override the `service` section if you want to add or remove receivers, processors, -or exporters. Create a yaml file with your Honeycomb API key and custom collector configuration. This example will add a -Jaeger exporter to the configuration. -```yaml -honeycomb: - apiKey: YOUR_API_KEY -config: - exporters: - jaeger: - endpoint: jaeger-collector:14250 - insecure: true - service: - pipelines: - traces: - exporters: [otlp, jaeger] -``` -Then use this yaml file when installing the chart -```bash -helm repo add honeycomb https://honeycombio.github.io/helm-charts -helm install opentelemetry-collector honeycomb/opentelemetry-collector --values my-values-file.yaml -``` -See [design docs](https://github.com/open-telemetry/opentelemetry-collector/blob/master/docs/design.md) for more -information on the OpenTelemetry Collector configuration. - -## Configuration - -The [values.yaml](./values.yaml) file contains information about all configuration -options for this chart. - -The only requirement is a Honeycomb API Key. This can be provided either by setting `honeycomb.apiKey` or by setting -`honeycomb.existingSecret` to the name of an existing opaque secret resource with your API Key specified in the `api-key` -field. - -You can obtain your API Key by going to your Account profile page inside of your Honeycomb instance. - -## Parameters - -The following table lists the configurable parameters of the Honeycomb chart, and their default values. - -| Parameter | Description | Default | -| --- | --- | --- | -| `honeycomb.apiKey` | Honeycomb API Key | `YOUR_API_KEY` | -| `honeycomb.apiHost` | API URL to sent events to. This is the Honeycomb OTLP over gRPC endpoint. | `api.honeycomb.io:443` | -| `honeycomb.dataset` | Name of dataset to send data into | `opentelemetry-collector` | -| `honeycomb.existingSecret` | Name of an existing secret resource to use containing your API Key in the `api-key` field | `nil` | -| `honeycomb.exportOptions` | Configuration options for the OpenTelemetry [OTLP exporter](https://github.com/open-telemetry/opentelemetry-collector/blob/main/config/configgrpc/README.md) used to export data into Honeycomb. All options but `endpoint` and `headers` can be used. | `nil` | -| `config` | OpenTelemetry Collector Configuration ([design docs](https://github.com/open-telemetry/opentelemetry-collector/blob/master/docs/design.md)) | receivers: [otlp, jaeger, zipkin] / processors: [memory_limiter, batch, queued_retry] / exporters: [honeycomb] | -| `nameOverride` | String to partially override opentelemetry-collector.fullname template with a string (will append the release name) | `nil` | -| `fullnameOverride` | String to fully override opentelemetry-collector.fullname template with a string | `nil` | -| `imagePullSecrets` | Specify docker-registry secret names as an array | `[]` | -| `image.repository` | OpenTelemetry Collector Image name | `otel/opentelemetry-collector-contrib` | -| `image.tag` | OpenTelemetry Collector Image tag (leave blank to use app version) | `nil` | -| `image.pullPolicy` | OpenTelemetry Collector image pull policy | `IfNotPresent` | -| `replicaCount` | Number of OpenTelemetry Collector nodes | `1` | -| `podAnnotations` | Pod annotations | `{}` | -| `podSecurityContext` | Security context for pod | `{}` | -| `securityContext` | Security context for container | `{}` | -| `service.type` | Kubernetes Service type | `ClusterIP` | -| `service.annotations` | Annotations for OpenTelemetry Collector service | `{}` | -| `resources` | CPU/Memory resource requests/limits | limit: 1000m/2Gi, request: 200m/400Mi | -| `autoscaling.enabled` | Enable horizontal pod autoscaling | `false` | -| `autoscaling.minReplicas` | Minimum replicas | `1` | -| `autoscaling.maxReplicas` | Maximum replicas | `10` | -| `autoscaling.targetCPUUtilizationPercentage` | Target CPU utilization | `80` | -| `autoscaling.targetMemoryUtilizationPercentage` | Target memory utilization | `nil` | -| `nodeSelector` | Node labels for pod assignment | `{}` | -| `tolerations` | Tolerations for pod assignment | `[]`| -| `affinity` | Map of node/pod affinities | `{}` | -| `serviceAccount.create` | Specify whether a ServiceAccount should be created | `true` | -| `serviceAccount.name` | The name of the ServiceAccount to create | Generated using the `honeycomb.fullname` template | -| `serviceAccount.annotations` | Annotations to be applied to ServiceAccount | `{}` | -| `k8sProcessor.rbac.create` | Specify whether the cluster-role and cluster-role-bindings should be created for the k8s_tagger processor | `false` | -| `k8sProcessor.rbac.name` | Name of the cluster-role and cluster-role-bindings for the k8s_tagger processor | Generated using the `opentelemetry-collector.fullname` template `{opentelemetry-collector.fullname}-k8sprocessor` | - - -## Upgrading - -### Upgrading from 0.4.3 or earlier -OpenTelemetry has deprecated and removed the legacy ports for OTLP: 55680/55681. These ports have been removed from the -default configuration. The proper default ports for OTLP are 4317 for OTLP/GRPC and 4318 for OTLP/HTTP. - -Memory limiter and memory ballast have been reconfigured as part of the collector. A new processor and extension are now -used to configure memory limits and ballast. The default settings, will respond dynamically to the configured pod memory -limits, and in most cases should not require any further configuration changes. - -### Upgrading from 0.3.2 or earlier -The Honeycomb exporter has been deprecated in favor of using the OTLP exporter that the Honeycomb service supports natively. -Since the default OTLP exporter is now used, sampling of data on export is no longer supported, and use of the -`honeycomb.sample_rate` and `honeycomb.sample_rate_attribute` properties is no longer supported. -Sampling can be accomplished using the [Probabilistic Sampling Processor](https://github.com/open-telemetry/opentelemetry-collector/tree/main/processor/probabilisticsamplerprocessor). -Advanced sampling techniques can be accomplished using the [Honeycomb Refinery](../refinery) Helm chart. - -The default value for the `honeycomb.apiHost` property has changed to represent a gRPC endpoint address. -If you copied this default value into your local values file, you will need to update this to `api.honeycomb.io:443` when upgrading. - -### Upgrading from 0.1.1 or earlier -A breaking change in the OTLP receiver configuration was introduced. This change is part of the default configuration. -If you changed the default OTLP receiver configuration, you will need to ensure your changes are compatible with the -updated configuration layout for OTLP. diff --git a/charts/opentelemetry-collector/templates/NOTES.txt b/charts/opentelemetry-collector/templates/NOTES.txt index 881a7db1..b80ca753 100644 --- a/charts/opentelemetry-collector/templates/NOTES.txt +++ b/charts/opentelemetry-collector/templates/NOTES.txt @@ -1,14 +1 @@ -{{- $validApiKey := and (.Values.honeycomb.apiKey) (ne .Values.honeycomb.apiKey "YOUR_API_KEY") -}} - -{{- if and (not $validApiKey) (not .Values.honeycomb.existingSecret) }} -##### ERROR: -You must either set the value for 'honeycomb.apiKey' to your API Key that you can find in your Honeycomb account -profile: https://ui.honeycomb.io/account or set the value for 'honeycomb.existingSecret' with the name of an existing -secret resource name which contains your API Key -##### -{{- end }} - -[WARNING] This chart has been sunset, please use the open-telemetry/opentelemetry-collector chart instead. See https://github.com/honeycombio/helm-charts#sunset-notice for more details. - -OpenTelemetry Collector is setup and configured to collect traces and send them to Honeycomb. -You can see your traces at https://ui.honeycomb.io +[WARNING] This chart has been deprecated, please use the open-telemetry/opentelemetry-collector chart instead. See https://github.com/honeycombio/helm-charts#deprecation-notice for more details.