services: aerospike: image: aerospike@sha256:f268d48f5075010ff268b29fbae28518418070dfb31935daa31f0b45c59f4da9 # ce-6.4.0.3 ports: - "127.0.0.1:3000-3002:3000-3002" azurite: image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-storage/azurite@sha256:647c63a91102a9d8e8000aab803436e1fc85fbb285e7ce830a82ee5d6661cf37 # 3.35.0 ports: - "127.0.0.1:10000:10000" - "127.0.0.1:10001:10001" - "127.0.0.1:10002:10002" azurecosmosemulator: image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator@sha256:bf3bd3cbe3fae2005a0745f77b01d1fc8cd04112193f3ee32289ee15ee9ae5fa # vnext-preview ports: - "127.0.0.1:8081:8081" - "127.0.0.1:8080:8080" - "127.0.0.1:1234:1234" environment: ACCEPT_EULA: "Y" BLOB_SERVER: azurite METADATA_SERVER: azurite azureeventhubsemulator: image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-messaging/eventhubs-emulator@sha256:25ec4141efb69933a0c82e6a787fa147a3895519e7d236d4c41ba568e03100eb # 2.1.0 volumes: - "./packages/datadog-plugin-azure-functions/test/fixtures/eventhub-emulator-config.json:/Eventhubs_Emulator/ConfigFiles/Config.json" ports: - "127.0.0.1:5673:5672" - "127.0.0.1:9092:9092" environment: BLOB_SERVER: azurite METADATA_SERVER: azurite ACCEPT_EULA: "Y" azureservicebusemulator: image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-messaging/servicebus-emulator@sha256:353913ece3d9124cebd40f4b91d00dd197846b8cf86eae9a4790698709c64a1d # 1.1.2 volumes: - "./packages/datadog-plugin-azure-functions/test/fixtures/servicebus-emulator-config.json:/ServiceBus_Emulator/ConfigFiles/Config.json" ports: - "127.0.0.1:5672:5672" - "127.0.0.1:5300:5300" environment: ACCEPT_EULA: "Y" MSSQL_SA_PASSWORD: "Localtestpass1!" SQL_SERVER: azuresqledge azuresqledge: image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-sql-edge@sha256:1dcc88d2d9e555d0addb0636648d0da033206978d7c5c4da044c904a0f06f58b # 1.0.7 platform: linux/amd64 ports: - "127.0.0.1:1433:1433" environment: ACCEPT_EULA: "Y" MSSQL_SA_PASSWORD: "Localtestpass1!" couchbase: image: ghcr.io/datadog/couchbase-server-sandbox@sha256:4ffbf2bc9785a9c7c6ddd7580226280a2a9f1f08c689999f5dff7958e71ad97e # latest ports: - "127.0.0.1:8091-8095:8091-8095" - "127.0.0.1:11210:11210" postgres: image: postgres@sha256:b1d91bceef1fbbd64ea5d8afc3d257fbc4ffe23c5b3425ccc72b52f9c500fbb6 # 9.5-alpine environment: - POSTGRES_PASSWORD=postgres ports: - "127.0.0.1:5432:5432" mssql: # A working MSSQL server is not available on ARM. # This image provides _most_ of sqlserver functionalities, but # does not support stored procedures (corresponding tests will fail) image: ghcr.io/datadog/dd-trace-js/mcr.microsoft.com/azure-sql-edge@sha256:1dcc88d2d9e555d0addb0636648d0da033206978d7c5c4da044c904a0f06f58b # 1.0.7 environment: - "ACCEPT_EULA=Y" - "SA_PASSWORD=DD_HUNTER2" ports: - "127.0.0.1:1433:1433" mysql: image: mariadb@sha256:22edfe1c78349f8cae88bbb5c2873b7e6c515be767c91c691308ce57445806f3 # 10.4 environment: - MYSQL_ALLOW_EMPTY_PASSWORD=yes - MYSQL_DATABASE=db ports: - "127.0.0.1:3306:3306" redis: image: redis@sha256:c9d92d840fd011c908f040592857c724ae6d877f2aba5c40ad963276507386b2 # 7.0-alpine ports: - "127.0.0.1:6379:6379" redis-cluster: image: grokzen/redis-cluster@sha256:f130dd8a322fc4dc595380ec94907539c341d5841de7d31e679223aec04d30f6 # 7.0.10 platform: linux/amd64 environment: - IP=0.0.0.0 - INITIAL_PORT=7000 ports: - "127.0.0.1:7000-7005:7000-7005" mongo: image: circleci/mongo@sha256:ce33f29bababa5d2775f8e945ca0ba8754b727a2251b96eb3eed501628cb7b65 # 4.4 platform: linux/amd64 command: ["--replSet", "rs0", "--bind_ip_all"] ports: - "127.0.0.1:27017:27017" mongo-prisma: image: prismagraphql/mongo-single-replica@sha256:3efd76778f3db22e167e4c5a4ceaae335bdc23a84e82dc3c8b44a39e61d93a24 # 4.4.3-bionic platform: linux/amd64 ports: - "127.0.0.1:27017:27017" oracledb: image: quillbuilduser/oracle-18-xe@sha256:c98893106a4af2294dad1eab5e7d6c31d03d14e8f0cd7ad40075dded1da4d158 ports: - "127.0.0.1:1521:1521" - "127.0.0.1:5500:5500" elasticsearch: image: elasticsearch@sha256:432f21444d8b70a4ab5fc64f9ef7112aaf0c21361948f2deb26d7a5c7333cf35 # 7.17.22 environment: - discovery.type=single-node - "ES_JAVA_OPTS=-Xms128m -Xmx128m" ports: - "127.0.0.1:9200:9200" rabbitmq: image: rabbitmq@sha256:ebe7ba2c73c719aaa78db416910b8a6d615cae519bbf0e26a65a76c29cd52729 # 3.6-alpine ports: - "127.0.0.1:5672:5672" qpid: image: scholzj/qpid-cpp@sha256:480142b4c1a64861f9974492d4f7ecdc3d565cd5e60e6a96d34e44f0bf47e043 # 1.38.0 command: -p 5673 environment: - QPIDD_ADMIN_USERNAME=admin - QPIDD_ADMIN_PASSWORD=admin ports: - "127.0.0.1:5673:5673" memcached: image: memcached@sha256:6627e971255440a1bd789ca709d8c6c767b98ad4ba0b29d49c7949ba3275cbf9 # 1.5-alpine ports: - "11211:11211" cassandra: image: cassandra@sha256:61cbfa672b254e8fc82ece6bfd434ef7a2000e39e32f8f03c9ee4700cd9973a5 # 3-focal ports: - "127.0.0.1:9042:9042" limitd: image: ghcr.io/rochdev/limitd@sha256:3315deb2a9fba6d9753b26363947992c2c7b1465aba7352b4595c76a197aaeff # latest environment: - BUCKET_1_NAME=user - BUCKET_1_SIZE=10 - BUCKET_1_PER_SECOND=5 ports: - "127.0.0.1:9231:9231" google-cloud-pubsub: image: ghcr.io/ridedott/pubsub-emulator@sha256:072d9ce6d89c5aa178e945c227cefdd98dc7a31ab10e027926fc7d55e70198bc # latest ports: - "127.0.0.1:8081:8081" localstack: image: localstack/localstack@sha256:e606c4421419030b12d63a59f1211f57f5b0fbf7e9ce769e6250ee62ff4f9293 # 3.0.2 ports: - "127.0.0.1:4566:4566" # Edge environment: - LOCALSTACK_SERVICES=dynamodb,kinesis,s3,sqs,sns,redshift,route53,logs,serverless,lambda,stepfunctions,events - EXTRA_CORS_ALLOWED_HEADERS=x-amz-request-id,x-amzn-requestid,x-amz-id-2 - EXTRA_CORS_EXPOSE_HEADERS=x-amz-request-id,x-amzn-requestid,x-amz-id-2 - AWS_DEFAULT_REGION=us-east-1 - FORCE_NONINTERACTIVE=true - START_WEB=0 - DEBUG=${DEBUG-} - DOCKER_HOST=unix:///var/run/docker.sock volumes: - "/var/run/docker.sock:/var/run/docker.sock" localstack-legacy: # we have two localstacks since upgrading localstack was causing lambda & S3 tests to fail # To-Do: Debug localstack / lambda and localstack / S3 image: localstack/localstack@sha256:934a0d7fdab229160afa488eb2f9af2cf760d6982e14fcf86eb2c976195763b6 # 1.1.0 ports: - "127.0.0.1:4567:4567" # Edge environment: - LOCALSTACK_SERVICES=dynamodb,kinesis,s3,sqs,sns,redshift,route53,logs,serverless - EXTRA_CORS_ALLOWED_HEADERS=x-amz-request-id,x-amzn-requestid,x-amz-id-2 - EXTRA_CORS_EXPOSE_HEADERS=x-amz-request-id,x-amzn-requestid,x-amz-id-2 - AWS_DEFAULT_REGION=us-east-1 - FORCE_NONINTERACTIVE=true - START_WEB=0 - GATEWAY_LISTEN=127.0.0.1:4567 - EDGE_PORT=4567 - EDGE_PORT_HTTP=4567 - LAMBDA_EXECUTOR=local kafka: platform: linux/arm64 image: apache/kafka@sha256:4ceccc577f03f51f6af8dbfda55194d0d892f4fa7913ffbded567ce3895622ed # 3.9.1 ports: - "127.0.0.1:9092:9092" - "127.0.0.1:9093:9093" environment: - KAFKA_PROCESS_ROLES=broker,controller - KAFKA_NODE_ID=1 - KAFKA_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 - KAFKA_CONTROLLER_QUORUM_VOTERS=1@127.0.0.1:9093 - KAFKA_CONTROLLER_LISTENER_NAMES=CONTROLLER - CLUSTER_ID=5L6g3nShT-eMCtK--X86sw - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092 - KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 - KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0 nats: image: nats@sha256:7f430e429d0a90444b38bd40ab7812fd3afcc49a51f6b03a931f9becd5aeb280 # 2.14.1 ports: - "127.0.0.1:4222:4222" opensearch: image: opensearchproject/opensearch@sha256:3a73623acf3cdd566ad7d0c6c06190a528e6b8a5d54fe1f4327258e32bd8df26 # 2 environment: - plugins.security.disabled=true - discovery.type=single-node - "ES_JAVA_OPTS=-Xms128m -Xmx128m" ports: - "127.0.0.1:9201:9200" openldap: image: bitnamilegacy/openldap@sha256:687f14a22b5c74fb057a57221acdbe7b8c82e2d3619fc380db3af48ec4aa04ed # latest ports: - "127.0.0.1:1389:1389" - "127.0.0.1:1636:1636" environment: - LDAP_ADMIN_USERNAME=admin - LDAP_ADMIN_PASSWORD=adminpassword - LDAP_USERS=user01,user02 - LDAP_PASSWORDS=password1,password2 testagent: image: ghcr.io/datadog/dd-apm-test-agent/ddapm-test-agent@sha256:e83bb3b3805a88faf37ea0f957d6700d9dcf3ed8845847134699c6bb2b7d6ff7 # v1.63.0 ports: - "127.0.0.1:9126:9126" - "127.0.0.1:4318:4318" environment: - LOG_LEVEL=DEBUG - TRACE_LANGUAGE=javascript - ENABLED_CHECKS=trace_stall,meta_tracer_version_header,trace_count_header,trace_peer_service - PORT=9126 - VCR_CASSETTES_DIRECTORY=/vcr-cassettes # The test agent treats the string "false" as truthy; empty disables CI mode locally. - VCR_CI_MODE=${VCR_CI_MODE:-} - VCR_PROVIDER_MAP=claude-agent-sdk=https://api.anthropic.com,datadog-experiments=${DD_LLMOBS_EXPERIMENTS_VCR_UPSTREAM:-https://api.datadoghq.com} - VCR_JSON_BODY_NORMALIZERS=metadata.user_id,output_config.effort,timestamp_ms,start_ns - >- VCR_BODY_REGEX_NORMALIZERS=agentId: [a-f0-9]+,SendMessage with to: '[a-f0-9]+',[\s\S]*?,"events":\[\{"event_type":"ClaudeCodeInternalEvent"[^\]]*\],cc_version=[^;]+,cch=[^;]+,(?<="text":")[\s\S]*?(?:\\n)*(?:"\}\x2c\{"type":"text"\x2c"text":"[\s\S]*?(?:\\n)*)*(?="),[\s\S]*?,(?<="input":\{"description":")[^"]*,(?<="name":"Agent"\x2c"description":")(?:[^"\\]|\\.)*,(?<="run_in_background":\{"description":")(?:[^"\\]|\\.)*,(?:You are an agent for Claude Code|Write the title|Report the result concisely\.|Async agent launched successfully|Optional model override for this agent\.|Generate a concise\x2c sentence-case title|You are naming a coding session)(?:\\.|[^"\\])*,--openai-[A-Za-z0-9]+,(?<="span_id":")[0-9a-f]+,(?<="trace_id":")[0-9a-f]+,(?<="start_ns":)\d+,(?<="duration":)\d+,(?<="timestamp_ms":)\d+,run_id:[0-9a-f]+,(?:/private)?/tmp/claude-agent-sdk-config/projects/-(?:private-)?tmp/memory/,(?<=Primary working directory: )[^\\]*,(?<=Platform: )[^\\]*,(?<=Shell: )[^\\]*,(?<=OS Version: )[^\\]*, - Tool results may include data from external sources\.[^\\]*\\n(?: - Text inside [^\\]*\\n)? - Users may configure # - AWS_SECRET_ACCESS_KEY # uncomment this line for generating aws service cassettes volumes: # when there are other products not using the cassette feature from the test agent, # we can move this directory to a shared location here, and change the above # environment variable to point to that location - ./packages/dd-trace/test/llmobs/cassettes:/vcr-cassettes