Skip to content

Commit

Permalink
Merge branch 'main' into enable-selectors-daemonset-status
Browse files Browse the repository at this point in the history
  • Loading branch information
rivToadd authored Feb 26, 2024
2 parents d8c5818 + d44f71d commit a0c1c2e
Show file tree
Hide file tree
Showing 22 changed files with 298 additions and 179 deletions.
16 changes: 16 additions & 0 deletions .chloggen/apache-http-instrumentation-command-flag.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: breaking

# The name of the component, or a single word describing the area of concern, (e.g. operator, target allocator, github action)
component: operator

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: remove featuregate `EnableApacheHTTPAutoInstrumentationSupport`. Use command line flag `--enable-apache-httpd-instrumentation` instead

# One or more tracking issues related to the change
issues: [2582, 2670]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:
16 changes: 16 additions & 0 deletions .chloggen/fix-2598.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: bug_fix

# The name of the component, or a single word describing the area of concern, (e.g. operator, target allocator, github action)
component: operator

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: propagate otel name label down to selector of ta resources

# One or more tracking issues related to the change
issues: [2598]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:
18 changes: 17 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -488,9 +488,25 @@ chlog-preview: chlog-install
$(CHLOGGEN) update --dry

.PHONY: chlog-update
chlog-update: chlog-install
chlog-update: chlog-install chlog-insert-components
$(CHLOGGEN) update --version $(VERSION)

.PHONY: chlog-insert-components
chlog-insert-components:
@echo "### Components" > components.md
@echo "" >>components.md
@echo "* [OpenTelemetry Collector - v${OTELCOL_VERSION}](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v${OTELCOL_VERSION})" >>components.md
@echo "* [OpenTelemetry Contrib - v${OTELCOL_VERSION}](https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v${OTELCOL_VERSION})" >>components.md
@echo "* [Java auto-instrumentation - ${AUTO_INSTRUMENTATION_JAVA_VERSION}](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/tag/v${AUTO_INSTRUMENTATION_JAVA_VERSION})" >>components.md
@echo "* [.NET auto-instrumentation - ${AUTO_INSTRUMENTATION_DOTNET_VERSION}](https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/tag/${AUTO_INSTRUMENTATION_DOTNET_VERSION})" >>components.md
@echo "* [Node.JS - ${AUTO_INSTRUMENTATION_NODEJS_VERSION}](https://github.com/open-telemetry/opentelemetry-js-contrib/releases/tag/auto-instrumentations-node-${AUTO_INSTRUMENTATION_NODEJS_VERSION})" >>components.md
@echo "* [Python - ${AUTO_INSTRUMENTATION_PYTHON_VERSION}](https://github.com/open-telemetry/opentelemetry-python-contrib/releases/tag/${AUTO_INSTRUMENTATION_PYTHON_VERSION})" >>components.md
@echo "* [Go - v${AUTO_INSTRUMENTATION_GO_VERSION}](https://github.com/open-telemetry/opentelemetry-go-instrumentation/releases/tag/v${AUTO_INSTRUMENTATION_GO_VERSION})" >>components.md
@echo "* [ApacheHTTPD - ${AUTO_INSTRUMENTATION_APACHE_HTTPD_VERSION}](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv${AUTO_INSTRUMENTATION_APACHE_HTTPD_VERSION})" >>components.md
@echo "* [Nginx - ${AUTO_INSTRUMENTATION_NGINX_VERSION}](https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/tag/webserver%2Fv${AUTO_INSTRUMENTATION_NGINX_VERSION})" >>components.md
@sed -i '/<!-- next version -->/rcomponents.md' CHANGELOG.md
@sed -i '/<!-- next version -->/G' CHANGELOG.md
@rm components.md

.PHONY: opm
OPM = ./bin/opm
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,14 +259,14 @@ EOF
The values for `propagators` are added to the `OTEL_PROPAGATORS` environment variable.
Valid values for `propagators` are defined by the [OpenTelemetry Specification for OTEL_PROPAGATORS](https://opentelemetry.io/docs/concepts/sdk-configuration/general-sdk-configuration/#otel_propagators).

The value for `sampler.type` is added to the `OTEL_TRACES_SAMPLER` envrionment variable.
The value for `sampler.type` is added to the `OTEL_TRACES_SAMPLER` environment variable.
Valid values for `sampler.type` are defined by the [OpenTelemetry Specification for OTEL_TRACES_SAMPLER](https://opentelemetry.io/docs/concepts/sdk-configuration/general-sdk-configuration/#otel_traces_sampler).
The value for `sampler.argument` is added to the `OTEL_TRACES_SAMPLER_ARG` environment variable. Valid values for `sampler.argument` will depend on the chosen sampler. See the [OpenTelemetry Specification for OTEL_TRACES_SAMPLER_ARG](https://opentelemetry.io/docs/concepts/sdk-configuration/general-sdk-configuration/#otel_traces_sampler_arg) for more details.

The above CR can be queried by `kubectl get otelinst`.

Then add an annotation to a pod to enable injection. The annotation can be added to a namespace, so that all pods within
that namespace wil get instrumentation, or by adding the annotation to individual PodSpec objects, available as part of
that namespace will get instrumentation, or by adding the annotation to individual PodSpec objects, available as part of
Deployment, Statefulset, and other resources.

Java:
Expand Down Expand Up @@ -334,7 +334,7 @@ The possible values for the annotation can be
* `"my-other-namespace/my-instrumentation"` - name and namespace of `Instrumentation` CR instance in another namespace.
* `"false"` - do not inject

>**Note:** For `DotNet` auto-instrumentation, by default, operator sets the `OTEL_DOTNET_AUTO_TRACES_ENABLED_INSTRUMENTATIONS` environment variable which specifies the list of traces source instrumentations you want to enable. The value that is set by default by the operator is all available instrumentations supported by the `openTelemery-dotnet-instrumentation` release consumed in the image, i.e. `AspNet,HttpClient,SqlClient`. This value can be overriden by configuring the environment variable explicitely.
>**Note:** For `DotNet` auto-instrumentation, by default, operator sets the `OTEL_DOTNET_AUTO_TRACES_ENABLED_INSTRUMENTATIONS` environment variable which specifies the list of traces source instrumentations you want to enable. The value that is set by default by the operator is all available instrumentations supported by the `openTelemery-dotnet-instrumentation` release consumed in the image, i.e. `AspNet,HttpClient,SqlClient`. This value can be overriden by configuring the environment variable explicitly.

#### Multi-container pods with single instrumentation

Expand Down
33 changes: 19 additions & 14 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,32 @@

Steps to release a new version of the OpenTelemetry Operator:

1. Change the `versions.txt`, so that it lists the target version of the OpenTelemetry Collector (operand), and the desired version for the target allocator and the operator. The `major.minor` should typically match, with the patch portion being possibly different.
2. Change the `autoinstrumentation-*` versions in `versions.txt` as per the latest supported versions in `autoinstrumentation/`.
- :warning: DO NOT BUMP JAVA PAST `1.32.X` AND DO NOT BUMP .NET PAST `1.2.0`. :warning: Upgrades past these versions will introduce breaking HTTP semantic convention changes.
1. Set the version you're releasing as an environment variable for convenience: `export VERSION=0.n+1.0`
2. Update `versions.txt`
- Operator, target allocator and opamp-bridge should be `$VERSION`.
- OpenTelemetry Collector should be the latest collector version. The `major.minor` should typically match, with the patch portion being possibly different.
- The `autoinstrumentation-*` versions should match the latest supported versions in `autoinstrumentation/`.
> [!WARNING]
> DO NOT BUMP JAVA PAST `1.32.X` AND DO NOT BUMP .NET PAST `1.2.0`. Upgrades past these versions will introduce breaking HTTP semantic convention changes.
3. Check if the compatible OpenShift versions are updated in the `hack/add-openshift-annotations.sh` script.
4. Run `make bundle DOCKER_USER=open-telemetry VERSION=0.38.0`, using the version that will be released.
5. Change the compatibility matrix in the [readme](./README.md) file, using the OpenTelemetry Operator version to be released and the current latest Kubernetes version as the latest supported version. Remove the oldest entry.
6. Add the changes to the changelog. Manually add versions of all operator components.
7. Check the OpenTelemetry Collector's changelog and ensure migration steps are present in `pkg/collector/upgrade`
8. Once the changes above are merged and available in `main`, tag it with the desired version, prefixed with `v`: `v0.38.0`
9. The GitHub Workflow will take it from here, creating a GitHub release with the generated artifacts (manifests) and publishing the images
10. The GitHub Workflow, submits two pull requests to the Operator hub repositories. Make sure the pull requests are approved and merged.
1. `community-operators-prod` is used by OLM on OpenShift. Example: [`operator-framework/community-operators-prod`](https://github.com/redhat-openshift-ecosystem/community-operators-prod/pull/494)
1. `community-operators` is used by Operatorhub.io. Example: [`operator-framework/community-operators`](https://github.com/k8s-operatorhub/community-operators/pull/461)
11. Update release schedule table, by moving the current release manager to the end of the table with updated release version.
3. Update the bundle by running `make bundle VERSION=$VERSION`.
3. Change the compatibility matrix in the [readme](./README.md) file, using the OpenTelemetry Operator version to be released and the current latest Kubernetes version as the latest supported version. Remove the oldest entry.
3. Update release schedule table, by moving the current release manager to the end of the table with updated release version.
3. Add the changes to the changelog by running `make chlog-update VERSION=$VERSION`.
3. Check the OpenTelemetry Collector's changelog and ensure migration steps are present in `pkg/collector/upgrade`
3. Once the changes above are merged and available in `main`, one of the maintainers will tag the release.
3. The GitHub Workflow will take it from here, creating a GitHub release with the generated artifacts (manifests) and publishing the images.
3. Update the operator version in the Helm Chart, as per the [release guide](https://github.com/open-telemetry/opentelemetry-helm-charts/blob/main/charts/opentelemetry-operator/CONTRIBUTING.md)
3. The GitHub Workflow, submits two pull requests to the Operator hub repositories. Make sure the pull requests are approved and merged.
- `community-operators-prod` is used by OLM on OpenShift. Example: [`operator-framework/community-operators-prod`](https://github.com/redhat-openshift-ecosystem/community-operators-prod/pull/494)
- `community-operators` is used by Operatorhub.io. Example: [`operator-framework/community-operators`](https://github.com/k8s-operatorhub/community-operators/pull/461)

## Generating the changelog

We now use the chloggen to generate the changelog, simply run the following to generate the Changelog:

```bash
make chlog-update
make chlog-update VERSION=$VERSION
```

This will delete all entries (other than the template) in the `.chloggen` directory and create a populated Changelog.md entry. Make sure that the PR you are generating for the release has the `[chore]` prefix, otherwise CI will not pass.
Expand Down
98 changes: 50 additions & 48 deletions autoinstrumentation/python/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,56 +1,58 @@
opentelemetry-distro==0.43b0
opentelemetry-distro==0.44b0
# We don't use the distro[otlp] option which automatically includes exporters since gRPC is not appropriate for
# injected auto-instrumentation, where it has a strict dependency on the OS / Python version the artifact is built for.
opentelemetry-exporter-otlp-proto-http==1.22.0
opentelemetry-exporter-otlp-proto-http==1.23.0

opentelemetry-propagator-b3==1.22.0
opentelemetry-propagator-jaeger==1.22.0
opentelemetry-propagator-b3==1.23.0
opentelemetry-propagator-jaeger==1.23.0
opentelemetry-propagator-aws-xray==1.0.1

opentelemetry-instrumentation==0.43b0
opentelemetry-propagator-ot-trace==0.43b0
opentelemetry-instrumentation==0.44b0
opentelemetry-propagator-ot-trace==0.44b0

# Copied in from https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation
# except for aws-lambda
opentelemetry-instrumentation-aio-pika==0.43b0
opentelemetry-instrumentation-aiohttp-client==0.43b0
opentelemetry-instrumentation-aiopg==0.43b0
opentelemetry-instrumentation-asgi==0.43b0
opentelemetry-instrumentation-asyncpg==0.43b0
opentelemetry-instrumentation-boto==0.43b0
opentelemetry-instrumentation-boto3sqs==0.43b0
opentelemetry-instrumentation-botocore==0.43b0
opentelemetry-instrumentation-celery==0.43b0
opentelemetry-instrumentation-confluent-kafka==0.43b0
opentelemetry-instrumentation-dbapi==0.43b0
opentelemetry-instrumentation-django==0.43b0
opentelemetry-instrumentation-elasticsearch==0.43b0
opentelemetry-instrumentation-falcon==0.43b0
opentelemetry-instrumentation-fastapi==0.43b0
opentelemetry-instrumentation-flask==0.43b0
opentelemetry-instrumentation-grpc==0.43b0
opentelemetry-instrumentation-httpx==0.43b0
opentelemetry-instrumentation-jinja2==0.43b0
opentelemetry-instrumentation-kafka-python==0.43b0
opentelemetry-instrumentation-logging==0.43b0
opentelemetry-instrumentation-mysql==0.43b0
opentelemetry-instrumentation-mysqlclient==0.43b0
opentelemetry-instrumentation-pika==0.43b0
opentelemetry-instrumentation-psycopg2==0.43b0
opentelemetry-instrumentation-pymemcache==0.43b0
opentelemetry-instrumentation-pymongo==0.43b0
opentelemetry-instrumentation-pymysql==0.43b0
opentelemetry-instrumentation-pyramid==0.43b0
opentelemetry-instrumentation-redis==0.43b0
opentelemetry-instrumentation-remoulade==0.43b0
opentelemetry-instrumentation-requests==0.43b0
opentelemetry-instrumentation-sklearn==0.43b0
opentelemetry-instrumentation-sqlalchemy==0.43b0
opentelemetry-instrumentation-sqlite3==0.43b0
opentelemetry-instrumentation-starlette==0.43b0
opentelemetry-instrumentation-system-metrics==0.43b0
opentelemetry-instrumentation-tornado==0.43b0
opentelemetry-instrumentation-tortoiseorm==0.43b0
opentelemetry-instrumentation-urllib==0.43b0
opentelemetry-instrumentation-urllib3==0.43b0
opentelemetry-instrumentation-wsgi==0.43b0
opentelemetry-instrumentation-aio-pika==0.44b0
opentelemetry-instrumentation-aiohttp-client==0.44b0
opentelemetry-instrumentation-aiopg==0.44b0
opentelemetry-instrumentation-asgi==0.44b0
opentelemetry-instrumentation-asyncio==0.44b0
opentelemetry-instrumentation-asyncpg==0.44b0
opentelemetry-instrumentation-boto==0.44b0
opentelemetry-instrumentation-boto3sqs==0.44b0
opentelemetry-instrumentation-botocore==0.44b0
opentelemetry-instrumentation-cassandra==0.44b0
opentelemetry-instrumentation-celery==0.44b0
opentelemetry-instrumentation-confluent-kafka==0.44b0
opentelemetry-instrumentation-dbapi==0.44b0
opentelemetry-instrumentation-django==0.44b0
opentelemetry-instrumentation-elasticsearch==0.44b0
opentelemetry-instrumentation-falcon==0.44b0
opentelemetry-instrumentation-fastapi==0.44b0
opentelemetry-instrumentation-flask==0.44b0
opentelemetry-instrumentation-grpc==0.44b0
opentelemetry-instrumentation-httpx==0.44b0
opentelemetry-instrumentation-jinja2==0.44b0
opentelemetry-instrumentation-kafka-python==0.44b0
opentelemetry-instrumentation-logging==0.44b0
opentelemetry-instrumentation-mysql==0.44b0
opentelemetry-instrumentation-mysqlclient==0.44b0
opentelemetry-instrumentation-pika==0.44b0
opentelemetry-instrumentation-psycopg2==0.44b0
opentelemetry-instrumentation-pymemcache==0.44b0
opentelemetry-instrumentation-pymongo==0.44b0
opentelemetry-instrumentation-pymysql==0.44b0
opentelemetry-instrumentation-pyramid==0.44b0
opentelemetry-instrumentation-redis==0.44b0
opentelemetry-instrumentation-remoulade==0.44b0
opentelemetry-instrumentation-requests==0.44b0
opentelemetry-instrumentation-sklearn==0.44b0
opentelemetry-instrumentation-sqlalchemy==0.44b0
opentelemetry-instrumentation-sqlite3==0.44b0
opentelemetry-instrumentation-starlette==0.44b0
opentelemetry-instrumentation-system-metrics==0.44b0
opentelemetry-instrumentation-tornado==0.44b0
opentelemetry-instrumentation-tortoiseorm==0.44b0
opentelemetry-instrumentation-urllib==0.44b0
opentelemetry-instrumentation-urllib3==0.44b0
opentelemetry-instrumentation-wsgi==0.44b0
16 changes: 8 additions & 8 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ require (
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.8.4
go.opentelemetry.io/collector/featuregate v0.77.0
go.opentelemetry.io/otel v1.23.1
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.23.1
go.opentelemetry.io/otel/metric v1.23.1
go.opentelemetry.io/otel/sdk v1.23.1
go.opentelemetry.io/otel/sdk/metric v1.23.1
go.opentelemetry.io/otel v1.24.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.24.0
go.opentelemetry.io/otel/metric v1.24.0
go.opentelemetry.io/otel/sdk v1.24.0
go.opentelemetry.io/otel/sdk/metric v1.24.0
go.uber.org/multierr v1.11.0
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.1
Expand Down Expand Up @@ -186,7 +186,7 @@ require (
github.com/yusufpapurcu/wmi v1.2.3 // indirect
go.mongodb.org/mongo-driver v1.13.1 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/otel/trace v1.23.1 // indirect
go.opentelemetry.io/otel/trace v1.24.0 // indirect
go.opentelemetry.io/proto/otlp v1.1.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/goleak v1.3.0 // indirect
Expand All @@ -198,7 +198,7 @@ require (
golang.org/x/net v0.20.0 // indirect
golang.org/x/oauth2 v0.16.0 // indirect
golang.org/x/sync v0.6.0 // indirect
golang.org/x/sys v0.16.0 // indirect
golang.org/x/sys v0.17.0 // indirect
golang.org/x/term v0.16.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.5.0 // indirect
Expand All @@ -209,7 +209,7 @@ require (
google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect
google.golang.org/grpc v1.61.0 // indirect
google.golang.org/grpc v1.61.1 // indirect
google.golang.org/protobuf v1.32.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
Expand Down
Loading

0 comments on commit a0c1c2e

Please sign in to comment.