Skip to content

Adding support for nodejs instrumentation (#191) #209

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

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,12 @@ ARG VERSION_DATE
ARG AGENT_VERSION
ARG AUTO_INSTRUMENTATION_JAVA_VERSION
ARG AUTO_INSTRUMENTATION_PYTHON_VERSION
ARG AUTO_INSTRUMENTATION_NODEJS_VERSION
ARG DCMG_EXPORTER_VERSION
ARG NEURON_MONITOR_VERSION

# Build
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -ldflags="-X ${VERSION_PKG}.version=${VERSION} -X ${VERSION_PKG}.buildDate=${VERSION_DATE} -X ${VERSION_PKG}.agent=${AGENT_VERSION} -X ${VERSION_PKG}.autoInstrumentationJava=${AUTO_INSTRUMENTATION_JAVA_VERSION} -X ${VERSION_PKG}.autoInstrumentationPython=${AUTO_INSTRUMENTATION_PYTHON_VERSION} -X ${VERSION_PKG}.dcgmExporter=${DCMG_EXPORTER_VERSION} -X ${VERSION_PKG}.neuronMonitor=${NEURON_MONITOR_VERSION}" -a -o manager main.go
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -ldflags="-X ${VERSION_PKG}.version=${VERSION} -X ${VERSION_PKG}.buildDate=${VERSION_DATE} -X ${VERSION_PKG}.agent=${AGENT_VERSION} -X ${VERSION_PKG}.autoInstrumentationJava=${AUTO_INSTRUMENTATION_JAVA_VERSION} -X ${VERSION_PKG}.autoInstrumentationPython=${AUTO_INSTRUMENTATION_PYTHON_VERSION} -X ${VERSION_PKG}.autoInstrumentationNodeJS=${AUTO_INSTRUMENTATION_NODEJS_VERSION} -X ${VERSION_PKG}.dcgmExporter=${DCMG_EXPORTER_VERSION} -X ${VERSION_PKG}.neuronMonitor=${NEURON_MONITOR_VERSION}" -a -o manager main.go

# Use distroless as minimal base image to package the manager binary
# Refer to https://github.com/GoogleContainerTools/distroless for more details
Expand Down
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ VERSION_PKG ?= "github.com/aws/amazon-cloudwatch-agent-operator/internal/version
AGENT_VERSION ?= "$(shell grep -v '\#' versions.txt | grep cloudwatch-agent | awk -F= '{print $$2}')"
AUTO_INSTRUMENTATION_JAVA_VERSION ?= "$(shell grep -v '\#' versions.txt | grep aws-otel-java-instrumentation | awk -F= '{print $$2}')"
AUTO_INSTRUMENTATION_PYTHON_VERSION ?= "$(shell grep -v '\#' versions.txt | grep aws-otel-python-instrumentation | awk -F= '{print $$2}')"
AUTO_INSTRUMENTATION_NODEJS_VERSION ?= "$(shell grep -v '\#' versions.txt | grep aws-otel-nodejs-instrumentation | awk -F= '{print $$2}')"
DCGM_EXPORTER_VERSION ?= "$(shell grep -v '\#' versions.txt | grep dcgm-exporter | awk -F= '{print $$2}')"
NEURON_MONITOR_VERSION ?= "$(shell grep -v '\#' versions.txt | grep neuron-monitor | awk -F= '{print $$2}')"

Expand Down Expand Up @@ -153,7 +154,7 @@ generate: controller-gen api-docs
# buildx is used to ensure same results for arm based systems (m1/2 chips)
.PHONY: container
container:
docker buildx build --load --platform linux/${ARCH} -t ${IMG} --build-arg VERSION_PKG=${VERSION_PKG} --build-arg VERSION=${VERSION} --build-arg VERSION_DATE=${VERSION_DATE} --build-arg AGENT_VERSION=${AGENT_VERSION} --build-arg AUTO_INSTRUMENTATION_JAVA_VERSION=${AUTO_INSTRUMENTATION_JAVA_VERSION} --build-arg AUTO_INSTRUMENTATION_PYTHON_VERSION=${AUTO_INSTRUMENTATION_PYTHON_VERSION} --build-arg DCGM_EXPORTER_VERSION=${DCGM_EXPORTER_VERSION} --build-arg NEURON_MONITOR_VERSION=${NEURON_MONITOR_VERSION} .
docker buildx build --load --platform linux/${ARCH} -t ${IMG} --build-arg VERSION_PKG=${VERSION_PKG} --build-arg VERSION=${VERSION} --build-arg VERSION_DATE=${VERSION_DATE} --build-arg AGENT_VERSION=${AGENT_VERSION} --build-arg AUTO_INSTRUMENTATION_JAVA_VERSION=${AUTO_INSTRUMENTATION_JAVA_VERSION} --build-arg AUTO_INSTRUMENTATION_PYTHON_VERSION=${AUTO_INSTRUMENTATION_PYTHON_VERSION} --build-arg AUTO_INSTRUMENTATION_NODEJS_VERSION=${AUTO_INSTRUMENTATION_NODEJS_VERSION} --build-arg DCGM_EXPORTER_VERSION=${DCGM_EXPORTER_VERSION} --build-arg NEURON_MONITOR_VERSION=${NEURON_MONITOR_VERSION} .

# Push the container image, used only for local dev purposes
.PHONY: container-push
Expand Down
10 changes: 9 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ const (
cloudwatchAgentImageRepository = "public.ecr.aws/cloudwatch-agent/cloudwatch-agent"
autoInstrumentationJavaImageRepository = "public.ecr.aws/aws-observability/adot-autoinstrumentation-java"
autoInstrumentationPythonImageRepository = "public.ecr.aws/aws-observability/adot-autoinstrumentation-python"
//TODO: Update with the latest release of ADOT SDK for NodeJS
autoInstrumentationNodeJSImageRepository = "ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-nodejs"
dcgmExporterImageRepository = "nvcr.io/nvidia/k8s/dcgm-exporter"
neuronMonitorImageRepository = "public.ecr.aws/neuron"
)
Expand Down Expand Up @@ -98,6 +100,7 @@ func main() {
agentImage string
autoInstrumentationJava string
autoInstrumentationPython string
autoInstrumentationNodeJS string
autoAnnotationConfigStr string
webhookPort int
tlsOpt tlsConfig
Expand All @@ -111,14 +114,16 @@ func main() {
stringFlagOrEnv(&agentImage, "agent-image", "RELATED_IMAGE_COLLECTOR", fmt.Sprintf("%s:%s", cloudwatchAgentImageRepository, v.AmazonCloudWatchAgent), "The default CloudWatch Agent image. This image is used when no image is specified in the CustomResource.")
stringFlagOrEnv(&autoInstrumentationJava, "auto-instrumentation-java-image", "RELATED_IMAGE_AUTO_INSTRUMENTATION_JAVA", fmt.Sprintf("%s:%s", autoInstrumentationJavaImageRepository, v.AutoInstrumentationJava), "The default OpenTelemetry Java instrumentation image. This image is used when no image is specified in the CustomResource.")
stringFlagOrEnv(&autoInstrumentationPython, "auto-instrumentation-python-image", "RELATED_IMAGE_AUTO_INSTRUMENTATION_PYTHON", fmt.Sprintf("%s:%s", autoInstrumentationPythonImageRepository, v.AutoInstrumentationPython), "The default OpenTelemetry Python instrumentation image. This image is used when no image is specified in the CustomResource.")
stringFlagOrEnv(&autoInstrumentationNodeJS, "auto-instrumentation-nodejs-image", "RELATED_IMAGE_AUTO_INSTRUMENTATION_NODEJS", fmt.Sprintf("%s:%s", autoInstrumentationNodeJSImageRepository, v.AutoInstrumentationNodeJS), "The default OpenTelemetry NodeJS instrumentation image. This image is used when no image is specified in the CustomResource.")
stringFlagOrEnv(&autoAnnotationConfigStr, "auto-annotation-config", "AUTO_ANNOTATION_CONFIG", "", "The configuration for auto-annotation.")
stringFlagOrEnv(&dcgmExporterImage, "dcgm-exporter-image", "RELATED_IMAGE_DCGM_EXPORTER", fmt.Sprintf("%s:%s", dcgmExporterImageRepository, v.DcgmExporter), "The default DCGM Exporter image. This image is used when no image is specified in the CustomResource.")
stringFlagOrEnv(&neuronMonitorImage, "neuron-monitor-image", "RELATED_IMAGE_NEURON_MONITOR", fmt.Sprintf("%s:%s", neuronMonitorImageRepository, v.NeuronMonitor), "The default Neuron monitor image. This image is used when no image is specified in the CustomResource.")
pflag.Parse()

// set java instrumentation java image in environment variable to be used for default instrumentation
// set supported languages instrumentation images in environment variable to be used for default instrumentation
os.Setenv("AUTO_INSTRUMENTATION_JAVA", autoInstrumentationJava)
os.Setenv("AUTO_INSTRUMENTATION_PYTHON", autoInstrumentationPython)
os.Setenv("AUTO_INSTRUMENTATION_NODEJS", autoInstrumentationNodeJS)

logger := zap.New(zap.UseFlagOptions(&opts))
ctrl.SetLogger(logger)
Expand All @@ -128,6 +133,7 @@ func main() {
"cloudwatch-agent", agentImage,
"auto-instrumentation-java", autoInstrumentationJava,
"auto-instrumentation-python", autoInstrumentationPython,
"auto-instrumentation-nodejs", autoInstrumentationNodeJS,
"dcgm-exporter", dcgmExporterImage,
"neuron-monitor", neuronMonitorImage,
"build-date", v.BuildDate,
Expand All @@ -142,6 +148,7 @@ func main() {
config.WithCollectorImage(agentImage),
config.WithAutoInstrumentationJavaImage(autoInstrumentationJava),
config.WithAutoInstrumentationPythonImage(autoInstrumentationPython),
config.WithAutoInstrumentationNodeJSImage(autoInstrumentationNodeJS),
config.WithDcgmExporterImage(dcgmExporterImage),
config.WithNeuronMonitorImage(neuronMonitorImage),
)
Expand Down Expand Up @@ -238,6 +245,7 @@ func main() {
instrumentation.NewTypeSet(
instrumentation.TypeJava,
instrumentation.TypePython,
instrumentation.TypeNodeJS,
),
)
mgr.GetWebhookServer().Register("/mutate-v1-workload", &webhook.Admission{
Expand Down
3 changes: 3 additions & 0 deletions pkg/instrumentation/auto/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import "github.com/aws/amazon-cloudwatch-agent-operator/pkg/instrumentation"
type AnnotationConfig struct {
Java AnnotationResources `json:"java"`
Python AnnotationResources `json:"python"`
NodeJS AnnotationResources `json:"nodejs"`
}

func (c AnnotationConfig) getResources(instType instrumentation.Type) AnnotationResources {
Expand All @@ -18,6 +19,8 @@ func (c AnnotationConfig) getResources(instType instrumentation.Type) Annotation
return c.Java
case instrumentation.TypePython:
return c.Python
case instrumentation.TypeNodeJS:
return c.NodeJS
default:
return AnnotationResources{}
}
Expand Down
9 changes: 9 additions & 0 deletions pkg/instrumentation/auto/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,21 @@ func TestConfig(t *testing.T) {
DaemonSets: []string{"ds2"},
StatefulSets: []string{"ss2"},
},
NodeJS: AnnotationResources{
Namespaces: []string{"n3"},
Deployments: []string{"d3"},
DaemonSets: []string{"ds3"},
StatefulSets: []string{"ss3"},
},
}
assert.Equal(t, cfg.Java, cfg.getResources(instrumentation.TypeJava))
assert.Equal(t, []string{"n1"}, getNamespaces(cfg.Java))
assert.Equal(t, []string{"d1"}, getDeployments(cfg.Java))
assert.Equal(t, cfg.Python, cfg.getResources(instrumentation.TypePython))
assert.Equal(t, []string{"ds2"}, getDaemonSets(cfg.Python))
assert.Equal(t, []string{"ss2"}, getStatefulSets(cfg.Python))
assert.Equal(t, cfg.Python, cfg.getResources(instrumentation.TypeNodeJS))
assert.Equal(t, []string{"ds3"}, getDaemonSets(cfg.NodeJS))
assert.Equal(t, []string{"ss3"}, getStatefulSets(cfg.NodeJS))
assert.Equal(t, AnnotationResources{}, cfg.getResources("invalidType"))
}
32 changes: 27 additions & 5 deletions pkg/instrumentation/defaultinstrumentation.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ import (
)

const (
defaultAPIVersion = "cloudwatch.aws.amazon.com/v1alpha1"
defaultInstrumenation = "java-instrumentation"
defaultNamespace = "default"
defaultKind = "Instrumentation"
defaultAPIVersion = "cloudwatch.aws.amazon.com/v1alpha1"
defaultInstrumentation = "java-instrumentation"
defaultNamespace = "default"
defaultKind = "Instrumentation"

httpPrefix = "http://"
httpsPrefix = "https://"
Expand All @@ -33,6 +33,10 @@ func getDefaultInstrumentation(agentConfig *adapters.CwaConfig) (*v1alpha1.Instr
if !ok {
return nil, errors.New("unable to determine python instrumentation image")
}
nodeJSInstrumentationImage, ok := os.LookupEnv("AUTO_INSTRUMENTATION_NODEJS")
if !ok {
return nil, errors.New("unable to determine nodejs instrumentation image")
}

// set protocol by checking cloudwatch agent config for tls setting
exporterPrefix := httpPrefix
Expand All @@ -50,7 +54,7 @@ func getDefaultInstrumentation(agentConfig *adapters.CwaConfig) (*v1alpha1.Instr
Kind: defaultKind,
},
ObjectMeta: metav1.ObjectMeta{
Name: defaultInstrumenation,
Name: defaultInstrumentation,
Namespace: defaultNamespace,
},
Spec: v1alpha1.InstrumentationSpec{
Expand Down Expand Up @@ -92,6 +96,24 @@ func getDefaultInstrumentation(agentConfig *adapters.CwaConfig) (*v1alpha1.Instr
{Name: "OTEL_LOGS_EXPORTER", Value: "none"},
},
},
//TODO: temporary environment variables. Update with the latest values from the ADOT SDK for NodeJS
NodeJS: v1alpha1.NodeJS{
Image: nodeJSInstrumentationImage,
Env: []corev1.EnvVar{
{Name: "OTEL_AWS_APP_SIGNALS_ENABLED", Value: "true"}, //TODO: remove in favor of new name once safe
{Name: "OTEL_AWS_APPLICATION_SIGNALS_ENABLED", Value: "true"},
{Name: "OTEL_TRACES_SAMPLER_ARG", Value: "endpoint=http://cloudwatch-agent.amazon-cloudwatch:2000"},
{Name: "OTEL_TRACES_SAMPLER", Value: "xray"},
{Name: "OTEL_EXPORTER_OTLP_PROTOCOL", Value: "http/protobuf"},
{Name: "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", Value: exporterPrefix + "cloudwatch-agent.amazon-cloudwatch:4316/v1/traces"},
{Name: "OTEL_AWS_APP_SIGNALS_EXPORTER_ENDPOINT", Value: exporterPrefix + "cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics"}, //TODO: remove in favor of new name once safe
{Name: "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", Value: exporterPrefix + "cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics"},
{Name: "OTEL_METRICS_EXPORTER", Value: "none"},
{Name: "OTEL_NODEJS_DISTRO", Value: "aws_distro"},
{Name: "OTEL_NODEJS_CONFIGURATOR", Value: "aws_configurator"},
{Name: "OTEL_LOGS_EXPORTER", Value: "none"},
},
},
},
}, nil
}
41 changes: 39 additions & 2 deletions pkg/instrumentation/defaultinstrumentation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
func Test_getDefaultInstrumentation(t *testing.T) {
os.Setenv("AUTO_INSTRUMENTATION_JAVA", defaultJavaInstrumentationImage)
os.Setenv("AUTO_INSTRUMENTATION_PYTHON", defaultPythonInstrumentationImage)
os.Setenv("AUTO_INSTRUMENTATION_NODEJS", defaultNodeJSInstrumentationImage)

httpInst := &v1alpha1.Instrumentation{
Status: v1alpha1.InstrumentationStatus{},
Expand All @@ -26,7 +27,7 @@ func Test_getDefaultInstrumentation(t *testing.T) {
Kind: defaultKind,
},
ObjectMeta: metav1.ObjectMeta{
Name: defaultInstrumenation,
Name: defaultInstrumentation,
Namespace: defaultNamespace,
},
Spec: v1alpha1.InstrumentationSpec{
Expand Down Expand Up @@ -68,6 +69,24 @@ func Test_getDefaultInstrumentation(t *testing.T) {
{Name: "OTEL_LOGS_EXPORTER", Value: "none"},
},
},
//TODO: temporary environment variables. Update with the latest values from the ADOT SDK for NodeJS
NodeJS: v1alpha1.NodeJS{
Image: defaultNodeJSInstrumentationImage,
Env: []corev1.EnvVar{
{Name: "OTEL_AWS_APP_SIGNALS_ENABLED", Value: "true"}, //TODO: remove in favor of new name once safe
{Name: "OTEL_AWS_APPLICATION_SIGNALS_ENABLED", Value: "true"},
{Name: "OTEL_TRACES_SAMPLER_ARG", Value: "endpoint=http://cloudwatch-agent.amazon-cloudwatch:2000"},
{Name: "OTEL_TRACES_SAMPLER", Value: "xray"},
{Name: "OTEL_EXPORTER_OTLP_PROTOCOL", Value: "http/protobuf"},
{Name: "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", Value: "http://cloudwatch-agent.amazon-cloudwatch:4316/v1/traces"},
{Name: "OTEL_AWS_APP_SIGNALS_EXPORTER_ENDPOINT", Value: "http://cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics"}, //TODO: remove in favor of new name once safe
{Name: "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", Value: "http://cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics"},
{Name: "OTEL_METRICS_EXPORTER", Value: "none"},
{Name: "OTEL_NODEJS_DISTRO", Value: "aws_distro"},
{Name: "OTEL_NODEJS_CONFIGURATOR", Value: "aws_configurator"},
{Name: "OTEL_LOGS_EXPORTER", Value: "none"},
},
},
},
}
httpsInst := &v1alpha1.Instrumentation{
Expand All @@ -77,7 +96,7 @@ func Test_getDefaultInstrumentation(t *testing.T) {
Kind: defaultKind,
},
ObjectMeta: metav1.ObjectMeta{
Name: defaultInstrumenation,
Name: defaultInstrumentation,
Namespace: defaultNamespace,
},
Spec: v1alpha1.InstrumentationSpec{
Expand Down Expand Up @@ -119,6 +138,24 @@ func Test_getDefaultInstrumentation(t *testing.T) {
{Name: "OTEL_LOGS_EXPORTER", Value: "none"},
},
},
//TODO: temporary environment variables. Update with the latest values from the ADOT SDK for NodeJS
NodeJS: v1alpha1.NodeJS{
Image: defaultNodeJSInstrumentationImage,
Env: []corev1.EnvVar{
{Name: "OTEL_AWS_APP_SIGNALS_ENABLED", Value: "true"}, //TODO: remove in favor of new name once safe
{Name: "OTEL_AWS_APPLICATION_SIGNALS_ENABLED", Value: "true"},
{Name: "OTEL_TRACES_SAMPLER_ARG", Value: "endpoint=http://cloudwatch-agent.amazon-cloudwatch:2000"},
{Name: "OTEL_TRACES_SAMPLER", Value: "xray"},
{Name: "OTEL_EXPORTER_OTLP_PROTOCOL", Value: "http/protobuf"},
{Name: "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", Value: "https://cloudwatch-agent.amazon-cloudwatch:4316/v1/traces"},
{Name: "OTEL_AWS_APP_SIGNALS_EXPORTER_ENDPOINT", Value: "https://cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics"}, //TODO: remove in favor of new name once safe
{Name: "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", Value: "https://cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics"},
{Name: "OTEL_METRICS_EXPORTER", Value: "none"},
{Name: "OTEL_NODEJS_DISTRO", Value: "aws_distro"},
{Name: "OTEL_NODEJS_CONFIGURATOR", Value: "aws_configurator"},
{Name: "OTEL_LOGS_EXPORTER", Value: "none"},
},
},
},
}

Expand Down
22 changes: 21 additions & 1 deletion pkg/instrumentation/podmutator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,13 @@ import (
const (
defaultJavaInstrumentationImage = "test.registry/adot-autoinstrumentation-java:test-tag"
defaultPythonInstrumentationImage = "test.registry/adot-autoinstrumentation-python:test-tag"
defaultNodeJSInstrumentationImage = "test.registry/adot-autoinstrumentation-nodejs:test-tag"
)

func TestGetInstrumentationInstanceFromNameSpaceDefault(t *testing.T) {
os.Setenv("AUTO_INSTRUMENTATION_JAVA", defaultJavaInstrumentationImage)
os.Setenv("AUTO_INSTRUMENTATION_PYTHON", defaultPythonInstrumentationImage)
os.Setenv("AUTO_INSTRUMENTATION_NODEJS", defaultNodeJSInstrumentationImage)

defaultInst := &v1alpha1.Instrumentation{
Status: v1alpha1.InstrumentationStatus{},
Expand All @@ -38,7 +40,7 @@ func TestGetInstrumentationInstanceFromNameSpaceDefault(t *testing.T) {
Kind: defaultKind,
},
ObjectMeta: metav1.ObjectMeta{
Name: defaultInstrumenation,
Name: defaultInstrumentation,
Namespace: defaultNamespace,
},
Spec: v1alpha1.InstrumentationSpec{
Expand Down Expand Up @@ -80,6 +82,24 @@ func TestGetInstrumentationInstanceFromNameSpaceDefault(t *testing.T) {
{Name: "OTEL_LOGS_EXPORTER", Value: "none"},
},
},
//TODO: temporary environment variables. Update with the latest values from the ADOT SDK for NodeJS
NodeJS: v1alpha1.NodeJS{
Image: defaultNodeJSInstrumentationImage,
Env: []corev1.EnvVar{
{Name: "OTEL_AWS_APP_SIGNALS_ENABLED", Value: "true"}, //TODO: remove in favor of new name once safe
{Name: "OTEL_AWS_APPLICATION_SIGNALS_ENABLED", Value: "true"},
{Name: "OTEL_TRACES_SAMPLER_ARG", Value: "endpoint=http://cloudwatch-agent.amazon-cloudwatch:2000"},
{Name: "OTEL_TRACES_SAMPLER", Value: "xray"},
{Name: "OTEL_EXPORTER_OTLP_PROTOCOL", Value: "http/protobuf"},
{Name: "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", Value: "http://cloudwatch-agent.amazon-cloudwatch:4316/v1/traces"},
{Name: "OTEL_AWS_APP_SIGNALS_EXPORTER_ENDPOINT", Value: "http://cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics"}, //TODO: remove in favor of new name once safe
{Name: "OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT", Value: "http://cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics"},
{Name: "OTEL_METRICS_EXPORTER", Value: "none"},
{Name: "OTEL_NODEJS_DISTRO", Value: "aws_distro"},
{Name: "OTEL_NODEJS_CONFIGURATOR", Value: "aws_configurator"},
{Name: "OTEL_LOGS_EXPORTER", Value: "none"},
},
},
},
}
namespace := corev1.Namespace{
Expand Down
2 changes: 2 additions & 0 deletions versions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ operator=1.4.1
# Represents the current release of ADOT language instrumentation.
aws-otel-java-instrumentation=v1.32.2
aws-otel-python-instrumentation=v0.2.0
# TODO - Update with the latest release of ADOT SDK
aws-otel-nodejs-instrumentation=0.51.0

dcgm-exporter=3.3.3-3.3.1-ubuntu22.04
neuron-monitor=1.0.0