update to latest otel snapshot #7265
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Integration Test" | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
paths: | |
- '.github/workflows/integration-test.yml' | |
- 'cmd/**' | |
- 'internal/**' | |
- 'pkg/**' | |
- 'tests/**' | |
- 'Makefile' | |
- 'Makefile.Common' | |
- 'go.mod' | |
- 'go.sum' | |
- '!**.md' | |
- '!internal/buildscripts/**' | |
concurrency: | |
group: integration-test-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
GO_VERSION: "1.21.5" | |
jobs: | |
docker-otelcol: | |
name: docker-otelcol | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
ARCH: [ "amd64", "arm64" ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
cache-dependency-path: '**/go.sum' | |
- uses: actions/cache@v4 | |
id: bundle-cache | |
with: | |
path: .cache/buildx/agent-bundle-${{ matrix.ARCH }} | |
key: agent-bundle-buildx-${{ matrix.ARCH }}-${{ hashFiles('internal/signalfx-agent/bundle/**') }} | |
restore-keys: | | |
agent-bundle-buildx-${{ matrix.ARCH }}- | |
- uses: docker/setup-qemu-action@v3 | |
if: ${{ matrix.ARCH != 'amd64' }} | |
with: | |
platforms: ${{ matrix.ARCH }} | |
image: tonistiigi/binfmt:qemu-v7.0.0 | |
- run: | | |
make docker-otelcol ARCH=${{ matrix.ARCH }} | |
env: | |
DOCKER_BUILDKIT: '1' | |
BUNDLE_CACHE_HIT: "${{ steps.bundle-cache.outputs.cache-hit }}" | |
- run: docker save -o ./bin/image.tar otelcol:latest | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: otelcol-${{ matrix.ARCH }} | |
path: ./bin | |
integration-vet: | |
name: integration-vet | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
ARCH: [ "amd64", "arm64" ] | |
fail-fast: false | |
needs: [docker-otelcol] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
cache-dependency-path: '**/go.sum' | |
- uses: actions/download-artifact@v4 | |
with: | |
name: otelcol-${{ matrix.ARCH }} | |
path: ./bin | |
- uses: docker/setup-qemu-action@v3 | |
if: ${{ matrix.ARCH != 'amd64' }} | |
with: | |
platforms: ${{ matrix.ARCH }} | |
image: tonistiigi/binfmt:qemu-v7.0.0 | |
- run: docker load -i ./bin/image.tar | |
- run: chmod a+x ./bin/* | |
- run: make integration-vet | |
env: | |
SPLUNK_OTEL_COLLECTOR_IMAGE: 'otelcol:latest' | |
integration-test: | |
name: integration-test | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
needs: [docker-otelcol] | |
services: | |
# Tomcat image for collectd-tomcat test: | |
tomcat: | |
image: tomcat | |
env: | |
JAVA_TOOL_OPTIONS: "-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=5000 -Dcom.sun.management.jmxremote.rmi.port=5000 -Dcom.sun.management.jmxremote.host=0.0.0.0 -Djava.rmi.server.hostname=0.0.0.0" | |
ports: | |
- "5000:5000" | |
# Kafka test, requires multiple Kafka containers and Zookeeper: | |
# Zookeeper image: | |
zookeeper: | |
image: zookeeper:3.5 | |
ports: | |
- "2181:2181" | |
options: >- | |
--health-cmd "bash -c \"exec 6<> /dev/tcp/localhost/2181\"" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
kafka-broker: | |
image: quay.io/splunko11ytest/kafka:latest | |
env: | |
START_AS: broker | |
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 | |
JMX_PORT: 7099 | |
ports: | |
- "7099:7099" | |
- "9092:9092" | |
options: >- | |
--health-cmd "bash -c \"exec 6<> /dev/tcp/localhost/7099\"" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
kafka-topic-creator: | |
image: quay.io/splunko11ytest/kafka:latest | |
env: | |
START_AS: create-topic | |
KAFKA_BROKER: kafka-broker:9092 | |
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 | |
kafka-producer: | |
image: quay.io/splunko11ytest/kafka:latest | |
env: | |
START_AS: producer | |
KAFKA_BROKER: kafka-broker:9092 | |
JMX_PORT: 8099 | |
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 | |
ports: | |
- "8099:8099" | |
options: >- | |
--health-cmd "bash -c \"exec 6<> /dev/tcp/localhost/8099\"" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
kafka-consumer: | |
image: quay.io/splunko11ytest/kafka:latest | |
env: | |
START_AS: consumer | |
KAFKA_BROKER: kafka-broker:9092 | |
JMX_PORT: 9099 | |
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 | |
ports: | |
- "9099:9099" | |
options: >- | |
--health-cmd "bash -c \"exec 6<> /dev/tcp/localhost/9099\"" | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
# Cassandra image for collectd-cassandra test: | |
cassandra: | |
image: quay.io/splunko11ytest/cassandra:latest | |
ports: | |
- "7199:7199" | |
# Nginx image for collectd-nginx test: | |
nginx: | |
image: quay.io/splunko11ytest/nginx:latest | |
ports: | |
- "8123:80" | |
# Couchbase image for collectd-couchbase test: | |
couchbase: | |
image: quay.io/splunko11ytest/couchbase:latest | |
ports: | |
- "8091:8091" | |
# ActiveMQ image for collectd-activemq test: | |
activemq: | |
image: quay.io/splunko11ytest/activemq:latest | |
ports: | |
- "1099:1099" | |
# Haproxy image for haproxy test: | |
haproxy: | |
image: quay.io/splunko11ytest/haproxy:latest | |
ports: | |
- "8082:8080" | |
# Apache image for collectd-apache test | |
apache: | |
image: quay.io/splunko11ytest/apache | |
ports: | |
- "18080:80" | |
# httpd image for prometheus-exporter test | |
httpd: | |
image: quay.io/splunko11ytest/httpd:latest | |
ports: | |
- "8000:80" | |
# httpd_basicauth image for lightprometheus test | |
httpd_basicauth: | |
image: quay.io/splunko11ytest/httpd_basicauth:latest | |
ports: | |
- "8001:80" | |
kong: | |
image: quay.io/splunko11ytest/kong:latest | |
ports: | |
- "18001:8001" | |
postgres: | |
image: quay.io/splunko11ytest/postgres:latest | |
ports: | |
- "15432:5432" | |
redis_client: | |
image: quay.io/splunko11ytest/redis_client:latest | |
redis_server: | |
image: quay.io/splunko11ytest/redis_server:latest | |
ports: | |
- "6379:6379" | |
strategy: | |
matrix: | |
ARCH: [ "amd64", "arm64" ] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
cache-dependency-path: '**/go.sum' | |
- uses: actions/download-artifact@v4 | |
with: | |
name: otelcol-${{ matrix.ARCH }} | |
path: ./bin | |
- uses: docker/setup-qemu-action@v3 | |
if: ${{ matrix.ARCH != 'amd64' }} | |
with: | |
platforms: ${{ matrix.ARCH }} | |
image: tonistiigi/binfmt:qemu-v7.0.0 | |
- run: docker load -i ./bin/image.tar | |
- run: chmod a+x ./bin/* | |
- name: Run Integration Test | |
run: | | |
set -o pipefail | |
make integration-test 2>&1 | tee ${{ github.job }}-${{ github.run_id }}.out | |
exit_status=${PIPESTATUS[0]} | |
echo "Exit status: $exit_status" | |
exit $exit_status | |
env: | |
SPLUNK_OTEL_COLLECTOR_IMAGE: 'otelcol:latest' | |
# The Integration Test output is extremely large so we upload it as an artifact | |
- name: Upload Integration Test Output as Artifact | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: ${{ github.job }}-${{ github.run_id }}.out | |
path: ${{ github.job }}-${{ github.run_id }}.out | |
retention-days: 5 |