Skip to content
Draft
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
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,31 @@ kind: Test
metadata:
name: instrumentation-apache-httpd
spec:
bindings:
- name: podLabelSelector
value: app=my-apache
- name: appPort
value: "8080"
- name: appPath
value: /
- name: collectorLabelSelector
value: app.kubernetes.io/name=deployment-collector
- name: collectorMetricsPort
value: "8888"
- name: containerName
value: otc-container
- name: retryTimeout
value: "120"
- name: retrySleep
value: "5"
- name: searchStrings
value: |
k8s.container.name: Str(myapp)
k8s.deployment.name: Str(my-apache)
- name: catchPodLabelSelector
value: app=my-apache
- name: catchContainer
value: otc-container
steps:
- name: Add OpenShift namespace annotations
use:
Expand All @@ -24,79 +49,11 @@ spec:
- podLogs:
selector: app=my-apache
- name: Make a request to the app
try:
- command:
entrypoint: kubectl
args:
- get
- pod
- -n
- ${NAMESPACE}
- -l
- app=my-apache
- -o
- jsonpath={.items[0].metadata.name}
outputs:
- name: podName
value: ($stdout)
- proxy:
apiVersion: v1
kind: Pod
name: ($podName)
namespace: ${NAMESPACE}
port: "8080"
use:
template: ../../step-templates/app-http-request.yaml
- name: Wait for telemetry data
try:
- script:
env:
- name: LABEL_SELECTOR
value: "app.kubernetes.io/name=deployment-collector"
- name: CONTAINER_NAME
value: "otc-container"
- name: RETRY_TIMEOUT
value: "120"
- name: RETRY_SLEEP
value: "5"
- name: SEARCH_STRINGS_ENV
value: |
k8s.container.name: Str(myapp)
k8s.deployment.name: Str(my-apache)
timeout: 2m
content: ../../test-e2e-apps/scripts/check_pod_logs.sh
use:
template: ../../step-templates/wait-for-telemetry.yaml
- name: Check the instrumented app has sent the telemetry data successfully
try:
- command:
entrypoint: kubectl
args:
- get
- pod
- -n
- ${NAMESPACE}
- -l
- app.kubernetes.io/name=deployment-collector
- -o
- jsonpath={.items[0].metadata.name}
outputs:
- name: podName
value: ($stdout)
- script:
env:
- name: podName
value: ($podName)
content: |
#!/bin/bash
# set -ex
kubectl get --raw /api/v1/namespaces/$NAMESPACE/pods/${podName}:8888/proxy/metrics
outputs:
- name: metrics
value: (x_metrics_decode($stdout))
check:
($error == null): true
- assert:
resource:
($metrics[?as_string(metric."__name__") == 'otelcol_exporter_sent_spans_total'].value | [0] > `0`): true
($metrics[?as_string(metric."__name__") == 'otelcol_receiver_accepted_spans_total'].value | [0] > `0`): true
catch:
- podLogs:
selector: app=my-apache
container: otc-container
use:
template: ../../step-templates/validate-collector-spans.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,31 @@ metadata:
creationTimestamp: null
name: instrumentation-apache-multicontainer
spec:
bindings:
- name: podLabelSelector
value: app=my-apache-multi
- name: appPort
value: "8080"
- name: appPath
value: /
- name: collectorLabelSelector
value: app.kubernetes.io/name=deployment-collector
- name: collectorMetricsPort
value: "8888"
- name: containerName
value: otc-container
- name: retryTimeout
value: "120"
- name: retrySleep
value: "5"
- name: searchStrings
value: |
k8s.container.name: Str(myapp)
k8s.deployment.name: Str(my-apache-multi)
- name: catchPodLabelSelector
value: app=my-apache-multi
- name: catchContainer
value: otc-container
steps:
- name: Add OpenShift namespace annotations
use:
Expand All @@ -25,82 +50,14 @@ spec:
- podLogs:
selector: app=my-apache-multi
- name: Make a request to the app
try:
- command:
entrypoint: kubectl
args:
- get
- pod
- -n
- ${NAMESPACE}
- -l
- app=my-apache-multi
- -o
- jsonpath={.items[0].metadata.name}
outputs:
- name: podName
value: ($stdout)
- proxy:
apiVersion: v1
kind: Pod
name: ($podName)
namespace: ${NAMESPACE}
port: "8080"
use:
template: ../../step-templates/app-http-request.yaml
- name: Wait for telemetry data
try:
- script:
env:
- name: LABEL_SELECTOR
value: "app.kubernetes.io/name=deployment-collector"
- name: CONTAINER_NAME
value: "otc-container"
- name: RETRY_TIMEOUT
value: "120"
- name: RETRY_SLEEP
value: "5"
- name: SEARCH_STRINGS_ENV
value: |
k8s.container.name: Str(myapp)
k8s.deployment.name: Str(my-apache-multi)
timeout: 2m
content: ../../test-e2e-apps/scripts/check_pod_logs.sh
use:
template: ../../step-templates/wait-for-telemetry.yaml
- name: Check the instrumented app has sent the telemetry data successfully
try:
- command:
entrypoint: kubectl
args:
- get
- pod
- -n
- ${NAMESPACE}
- -l
- app.kubernetes.io/name=deployment-collector
- -o
- jsonpath={.items[0].metadata.name}
outputs:
- name: podName
value: ($stdout)
- script:
env:
- name: podName
value: ($podName)
content: |
#!/bin/bash
# set -ex
kubectl get --raw /api/v1/namespaces/$NAMESPACE/pods/${podName}:8888/proxy/metrics
outputs:
- name: metrics
value: (x_metrics_decode($stdout))
check:
($error == null): true
- assert:
resource:
($metrics[?as_string(metric."__name__") == 'otelcol_exporter_sent_spans_total'].value | [0] > `0`): true
($metrics[?as_string(metric."__name__") == 'otelcol_receiver_accepted_spans_total'].value | [0] > `0`): true
catch:
- podLogs:
selector: app=my-apache-multi
container: otc-container
use:
template: ../../step-templates/validate-collector-spans.yaml
- name: step-03
try:
- command:
Expand Down Expand Up @@ -132,80 +89,12 @@ spec:
catch:
- podLogs:
selector: app=my-apache-multi
- name: Make a request to the app
try:
- command:
entrypoint: kubectl
args:
- get
- pod
- -n
- ${NAMESPACE}
- -l
- app=my-apache-multi
- -o
- jsonpath={.items[0].metadata.name}
outputs:
- name: podName
value: ($stdout)
- proxy:
apiVersion: v1
kind: Pod
name: ($podName)
namespace: ${NAMESPACE}
port: "8080"
- name: Wait for telemetry data
try:
- script:
env:
- name: LABEL_SELECTOR
value: "app.kubernetes.io/name=deployment-collector"
- name: CONTAINER_NAME
value: "otc-container"
- name: RETRY_TIMEOUT
value: "120"
- name: RETRY_SLEEP
value: "5"
- name: SEARCH_STRINGS_ENV
value: |
k8s.container.name: Str(myapp)
k8s.deployment.name: Str(my-apache-multi)
timeout: 2m
content: ../../test-e2e-apps/scripts/check_pod_logs.sh
- name: Check the instrumented app has sent the telemetry data successfully
try:
- command:
entrypoint: kubectl
args:
- get
- pod
- -n
- ${NAMESPACE}
- -l
- app.kubernetes.io/name=deployment-collector
- -o
- jsonpath={.items[0].metadata.name}
outputs:
- name: podName
value: ($stdout)
- script:
env:
- name: podName
value: ($podName)
content: |
#!/bin/bash
# set -ex
kubectl get --raw /api/v1/namespaces/$NAMESPACE/pods/${podName}:8888/proxy/metrics
outputs:
- name: metrics
value: (x_metrics_decode($stdout))
check:
($error == null): true
- assert:
resource:
($metrics[?as_string(metric."__name__") == 'otelcol_exporter_sent_spans_total'].value | [0] > `0`): true
($metrics[?as_string(metric."__name__") == 'otelcol_receiver_accepted_spans_total'].value | [0] > `0`): true
catch:
- podLogs:
selector: app=my-apache-multi
container: otc-container
- name: Make a request to the app after update
use:
template: ../../step-templates/app-http-request.yaml
- name: Wait for telemetry data after update
use:
template: ../../step-templates/wait-for-telemetry.yaml
- name: Check telemetry data after update
use:
template: ../../step-templates/validate-collector-spans.yaml
Loading
Loading