From 27a9b5c7c66737510579205c4d43f0b0366c045e Mon Sep 17 00:00:00 2001 From: Robert Lin Date: Thu, 1 Sep 2022 12:39:05 -0700 Subject: [PATCH] docker-compose: add otel-collector by default, disable jaeger by default (#848) Removes Jaeger from the default docker-compose deployment, and replaces it with OpenTelemetry Collector configured to log data only. With the jaeger/docker-compose.yaml overlay, a Jaeger instance can be deployed and otel-collector will be configured to send traces to the deployed Jaeger instance. --- .../db-only-migrate.docker-compose.yaml | 4 +- docker-compose/dev/README.md | 4 +- docker-compose/docker-compose.yaml | 120 ++++++++---------- docker-compose/jaeger/docker-compose.yaml | 45 +++++++ docker-compose/otel/docker-compose.yaml | 65 ---------- otel-collector/config.yaml | 34 +++++ 6 files changed, 139 insertions(+), 133 deletions(-) create mode 100644 docker-compose/jaeger/docker-compose.yaml delete mode 100644 docker-compose/otel/docker-compose.yaml create mode 100644 otel-collector/config.yaml diff --git a/docker-compose/db-only-migrate.docker-compose.yaml b/docker-compose/db-only-migrate.docker-compose.yaml index 6fe9a7e2..9432b2e0 100644 --- a/docker-compose/db-only-migrate.docker-compose.yaml +++ b/docker-compose/db-only-migrate.docker-compose.yaml @@ -13,7 +13,7 @@ services: # pgsql: container_name: pgsql - image: 'index.docker.io/sourcegraph/postgres-12-alpine:162246_2022-07-20_15dd0e0df1cc@sha256:7e6d298ed592e97c7873d687ced2a75e886441bd7d1a9cfd77a2aa5c868b8f09' + image: 'index.docker.io/sourcegraph/postgres-12-alpine:169594_2022-08-27_c479e442c579@sha256:dc6528d1e17da72d5fd1a20fbcdbf223558906db996df644461974ff3c309a50' cpus: 4 mem_limit: '2g' healthcheck: @@ -30,7 +30,7 @@ services: codeintel-db: container_name: codeintel-db - image: 'index.docker.io/sourcegraph/codeintel-db:162246_2022-07-20_15dd0e0df1cc@sha256:202c609e60f79cd4a8ad10ea92f84324caab6f3cdfdfac19c1226e591ce0208a' + image: 'index.docker.io/sourcegraph/codeintel-db:169594_2022-08-27_c479e442c579@sha256:74f76cbaa40ee7195fa3fbb55a01c597a131853236f14d1c0b1d26bd913c9c96' cpus: 4 mem_limit: '2g' healthcheck: diff --git a/docker-compose/dev/README.md b/docker-compose/dev/README.md index 3a538470..cd87eda3 100644 --- a/docker-compose/dev/README.md +++ b/docker-compose/dev/README.md @@ -8,6 +8,8 @@ Example usage: ```sh docker-compose \ -f docker-compose/docker-compose.yaml \ - -f docker-compose/otel/docker-compose.yaml \ + -f docker-compose/jaeger/docker-compose.yaml \ -f docker-compose/dev/docker-compose.yaml up ``` + +The above will deploy Sourcegraph on [http://localhost:8080](http://localhost:8080) with the indicated overlays. diff --git a/docker-compose/docker-compose.yaml b/docker-compose/docker-compose.yaml index d5c4a6b2..acc1b290 100644 --- a/docker-compose/docker-compose.yaml +++ b/docker-compose/docker-compose.yaml @@ -13,7 +13,7 @@ services: # for this container will need to be updated to reflect the new connection information. migrator: container_name: migrator - image: 'index.docker.io/sourcegraph/migrator:162246_2022-07-20_15dd0e0df1cc@sha256:4eac705cc518e4c19d082dd879eba8e9387f41b56ce3bb5145095e05fe30c65c' + image: 'index.docker.io/sourcegraph/migrator:169594_2022-08-27_c479e442c579@sha256:c2c517a7bd59197bcabbebe7ea1e02a85dce3a69d5cab7dbbc8a021cbc231041' cpus: 0.5 mem_limit: '500m' command: @@ -125,12 +125,12 @@ services: # service. sourcegraph-frontend-0: container_name: sourcegraph-frontend-0 - image: 'index.docker.io/sourcegraph/frontend:162246_2022-07-20_15dd0e0df1cc@sha256:39dc522b0ae267b884f7eec73e915c4b4d879a6a9b4ebe5074aa0b02e8b7a5d9' + image: 'index.docker.io/sourcegraph/frontend:169594_2022-08-27_c479e442c579@sha256:69e0e8142e3ede85e4dcb04e693b3a64d2c5fe28286ea2ce6877f6d324eee178' cpus: 4 mem_limit: '8g' environment: - DEPLOY_TYPE=docker-compose - - JAEGER_AGENT_HOST=jaeger + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' - PGHOST=pgsql - CODEINTEL_PGHOST=codeintel-db - CODEINSIGHTS_PGDATASOURCE=postgres://postgres:password@codeinsights-db:5432/postgres @@ -142,7 +142,6 @@ services: - 'SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090' - 'REPO_UPDATER_URL=http://repo-updater:3182' - 'GRAFANA_SERVER_URL=http://grafana:3370' - - 'JAEGER_SERVER_URL=http://jaeger:16686' - 'GITHUB_BASE_URL=http://github-proxy:3180' - 'PROMETHEUS_URL=http://prometheus:9090' healthcheck: @@ -168,7 +167,7 @@ services: # sourcegraph-frontend-internal: container_name: sourcegraph-frontend-internal - image: 'index.docker.io/sourcegraph/frontend:162246_2022-07-20_15dd0e0df1cc@sha256:39dc522b0ae267b884f7eec73e915c4b4d879a6a9b4ebe5074aa0b02e8b7a5d9' + image: 'index.docker.io/sourcegraph/frontend:169594_2022-08-27_c479e442c579@sha256:69e0e8142e3ede85e4dcb04e693b3a64d2c5fe28286ea2ce6877f6d324eee178' cpus: 4 mem_limit: '8g' environment: @@ -184,10 +183,9 @@ services: - 'SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090' - 'REPO_UPDATER_URL=http://repo-updater:3182' - 'GRAFANA_SERVER_URL=http://grafana:3000' - - 'JAEGER_SERVER_URL=http://jaeger:16686' - 'GITHUB_BASE_URL=http://github-proxy:3180' - 'PROMETHEUS_URL=http://prometheus:9090' - - JAEGER_AGENT_HOST=jaeger + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' volumes: - 'sourcegraph-frontend-internal-0:/mnt/cache' networks: @@ -215,12 +213,12 @@ services: # gitserver-0: container_name: gitserver-0 - image: 'index.docker.io/sourcegraph/gitserver:162246_2022-07-20_15dd0e0df1cc@sha256:602a834325cf4e9aabb23edd8e99f5a2614d61e773271c22f75d942cbed4e152' + image: 'index.docker.io/sourcegraph/gitserver:169594_2022-08-27_c479e442c579@sha256:c69f43ff5afa11b5d54d4b4f18e2bd88069f2bc7da3f9d885591c5afa60b5e38' cpus: 4 mem_limit: '8g' environment: - 'SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090' - - JAEGER_AGENT_HOST=jaeger + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' volumes: - 'gitserver-0:/data/repos' networks: @@ -238,12 +236,14 @@ services: # zoekt-indexserver-0: container_name: zoekt-indexserver-0 - image: 'index.docker.io/sourcegraph/search-indexer:162246_2022-07-20_15dd0e0df1cc@sha256:f6e2159c7e91aa5219815ee5aa80d86ac9e59626dfba195016e50b913d3dfc03' + image: 'index.docker.io/sourcegraph/search-indexer:169594_2022-08-27_c479e442c579@sha256:11daea37bdd626d90dd69abf1cc612ddb7d5621c6c738fc39545b870062807b6' cpus: 8 mem_limit: '16g' environment: - 'HOSTNAME=zoekt-webserver-0:6070' - 'SRC_FRONTEND_INTERNAL=http://sourcegraph-frontend-internal:3090' + - 'OPENTELEMETRY_DISABLED=false' + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' volumes: - 'zoekt-0-shared:/data/index' networks: @@ -259,11 +259,13 @@ services: # zoekt-webserver-0: container_name: zoekt-webserver-0 - image: 'index.docker.io/sourcegraph/indexed-searcher:162246_2022-07-20_15dd0e0df1cc@sha256:10d35c62a42099875a0286e6aa147c44d0adc63b565260a8e60abfd54497299e' + image: 'index.docker.io/sourcegraph/indexed-searcher:169594_2022-08-27_c479e442c579@sha256:6bff1cb93d9be8dbe55bbdde30d39a4e9ecd28032046401fcad45bb305cc1d51' cpus: 8 mem_limit: '50g' environment: - 'HOSTNAME=zoekt-webserver-0:6070' + - 'OPENTELEMETRY_DISABLED=false' + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' healthcheck: test: "wget -q 'http://127.0.0.1:6070/healthz' -O /dev/null || exit 1" interval: 5s @@ -284,12 +286,12 @@ services: # searcher-0: container_name: searcher-0 - image: 'index.docker.io/sourcegraph/searcher:162246_2022-07-20_15dd0e0df1cc@sha256:43bfd9ab694950ab9c52c0ade7e739419fbd8e1d08c0c6396700b5aa9deb2ca4' + image: 'index.docker.io/sourcegraph/searcher:169594_2022-08-27_c479e442c579@sha256:99cd1750f87a482f15f6d8b1796f8ad85c79f37baba5fab962d493dd37414a96' cpus: 2 mem_limit: '2g' environment: - 'SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090' - - JAEGER_AGENT_HOST=jaeger + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' healthcheck: test: "wget -q 'http://127.0.0.1:3181/healthz' -O /dev/null || exit 1" interval: 5s @@ -311,12 +313,12 @@ services: # github-proxy: container_name: github-proxy - image: 'index.docker.io/sourcegraph/github-proxy:162246_2022-07-20_15dd0e0df1cc@sha256:2eeac5d034792768629a700263661c106e2899dd69d08943a4c4f3b28f7d094b' + image: 'index.docker.io/sourcegraph/github-proxy:169594_2022-08-27_c479e442c579@sha256:744f82b83edf65e8d47fdeb3a58039464ce855ae9a0cc5c1ccf989cda2245fe7' cpus: 1 mem_limit: '1g' environment: - 'SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090' - - JAEGER_AGENT_HOST=jaeger + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' networks: - sourcegraph restart: always @@ -328,12 +330,12 @@ services: # precise-code-intel-worker: container_name: precise-code-intel-worker - image: 'index.docker.io/sourcegraph/precise-code-intel-worker:162246_2022-07-20_15dd0e0df1cc@sha256:79f0998c5b38eede20731dd07c0c61c02544e7dc1357c8875514cf05697d519f' + image: 'index.docker.io/sourcegraph/precise-code-intel-worker:169594_2022-08-27_c479e442c579@sha256:f5d0eff3bcaa72dfd9e0c7f88829ff0dc27580a875338c68ecd83393884db510' cpus: 2 mem_limit: '4g' environment: - 'SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090' - - JAEGER_AGENT_HOST=jaeger + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' healthcheck: test: "wget -q 'http://127.0.0.1:3188/healthz' -O /dev/null || exit 1" interval: 5s @@ -352,12 +354,12 @@ services: # repo-updater: container_name: repo-updater - image: 'index.docker.io/sourcegraph/repo-updater:162246_2022-07-20_15dd0e0df1cc@sha256:0fd6fd4ab5354e78fd24650831aacab07b5774e014e624d3325630e27f6362fe' + image: 'index.docker.io/sourcegraph/repo-updater:169594_2022-08-27_c479e442c579@sha256:87bd2e66cb3b3eb6b8e6b647dc956697e49060009051a4db35dd19ee2146298f' cpus: 4 mem_limit: '4g' environment: - 'SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090' - - JAEGER_AGENT_HOST=jaeger + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' - 'GITHUB_BASE_URL=http://github-proxy:3180' volumes: - 'repo-updater:/mnt/cache' @@ -373,12 +375,12 @@ services: # worker: container_name: worker - image: 'index.docker.io/sourcegraph/worker:162246_2022-07-20_15dd0e0df1cc@sha256:a5b2b3f1be01cb01e5d4d3792d1a8dc166045e9d303028a23d42d627915ac799' + image: 'index.docker.io/sourcegraph/worker:169594_2022-08-27_c479e442c579@sha256:7c0504e41595cc5ad37a7f42ce5a064edffee4a5772fe4bb56f32827def275f7' cpus: 4 mem_limit: '4g' environment: - 'SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090' - - JAEGER_AGENT_HOST=jaeger + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' - 'SRC_GIT_SERVERS=gitserver-0:3178' - 'SEARCHER_URL=http://searcher-0:3181' - 'SYMBOLS_URL=http://symbols-0:3184' @@ -398,7 +400,7 @@ services: # syntect-server: container_name: syntect-server - image: 'index.docker.io/sourcegraph/syntax-highlighter:162246_2022-07-20_15dd0e0df1cc@sha256:2a8d53b9071fb24d1f065203491be66f9d5af97393001eb621001a5ad707030c' + image: 'index.docker.io/sourcegraph/syntax-highlighter:169594_2022-08-27_c479e442c579@sha256:9c467fef15220c3d4ca04dc3bcd25d7fba90105ac40c9d4f1b5a71bfe4f3e646' cpus: 4 mem_limit: '6g' healthcheck: @@ -419,12 +421,12 @@ services: # symbols-0: container_name: symbols-0 - image: 'index.docker.io/sourcegraph/symbols:162246_2022-07-20_15dd0e0df1cc@sha256:f226e01f6420e143d76b579160ba94a19e59767d9887d7a52eb67b57dff6573c' + image: 'index.docker.io/sourcegraph/symbols:169594_2022-08-27_c479e442c579@sha256:7bbbcfd4fced793243caa301e3ea60eba255c69c100b38f9707f02a6cd558f59' cpus: 2 mem_limit: '4g' environment: - 'SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090' - - JAEGER_AGENT_HOST=jaeger + - 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' healthcheck: test: "wget -q 'http://127.0.0.1:3184/healthz' -O /dev/null || exit 1" interval: 5s @@ -445,7 +447,7 @@ services: # prometheus: container_name: prometheus - image: 'index.docker.io/sourcegraph/prometheus:162237_2022-07-20_33a8f764c989@sha256:182ec8927d4c362fda8cdf40922eeddf023d2b2b479ba4a012547d1547c1b940' + image: 'index.docker.io/sourcegraph/prometheus:169594_2022-08-27_c479e442c579@sha256:33bbe6f2b59a74f2046df1514c789f204b8cf36edd303c803688fedd9f198604' cpus: 4 mem_limit: '8g' volumes: @@ -472,7 +474,7 @@ services: # 'GF_SERVER_ROOT_URL='https://grafana.example.com' grafana: container_name: grafana - image: 'index.docker.io/sourcegraph/grafana:162246_2022-07-20_15dd0e0df1cc@sha256:4599fe6c8d41d47321e373dd3e9e1b8187de202243d338b7643e46cd46e1635b' + image: 'index.docker.io/sourcegraph/grafana:169594_2022-08-27_c479e442c579@sha256:e703eef8f4dd348a257d085b53e0d9a3431bc8a26334992eae267a5c8ee5beca' cpus: 1 mem_limit: '1g' volumes: @@ -493,7 +495,7 @@ services: # cadvisor: container_name: cadvisor - image: 'index.docker.io/sourcegraph/cadvisor:162246_2022-07-20_15dd0e0df1cc@sha256:738541f95b4da554d38dedfc2ad90e3db1ebdcc83065967d78fbc6e4b4cd53d4' + image: 'index.docker.io/sourcegraph/cadvisor:169594_2022-08-27_c479e442c579@sha256:2c3aa40297a5206f4c2d502305a2325148314c0e699f1a5696d95b5b28bc6029' cpus: 1 mem_limit: '1g' # You may set `privileged` to `false and `cadvisor` will run with reduced privileges. @@ -518,35 +520,6 @@ services: command: - --port=8080 - # Description: Jaeger all-in-one instance - # (https://www.jaegertracing.io/docs/1.17/getting-started/#all-in-one) for distributed tracing. - # - # Disk: none - # Ports exposed to other Sourcegraph services: 5778/TCP 6831/UDP 6832/UDP 14250/TCP - # Ports exposed to the public internet: none - # Ports exposed to site admins only: 16686/HTTP - # - jaeger: - container_name: jaeger - image: 'index.docker.io/sourcegraph/jaeger-all-in-one:162246_2022-07-20_15dd0e0df1cc@sha256:e4834a45fef5849c08e97a0ee637e3ad06d2a4e63d7d62e5529830185291a234' - cpus: 0.5 - mem_limit: '512m' - ports: - # Query port - - '0.0.0.0:16686:16686' - # Collector port - - '0.0.0.0:14250:14250' - # Agent ports - - '0.0.0.0:5778:5778' - - '0.0.0.0:6831:6831' - - '0.0.0.0:6832:6832' - networks: - - sourcegraph - restart: always - command: ['--memory.max-traces=20000'] - environment: - - 'SAMPLING_STRATEGIES_FILE=/etc/jaeger/sampling_strategies.json' - # Description: PostgreSQL database for various data. # # Disk: 128GB / persistent SSD @@ -555,7 +528,7 @@ services: # pgsql: container_name: pgsql - image: 'index.docker.io/sourcegraph/postgres-12-alpine:162246_2022-07-20_15dd0e0df1cc@sha256:7e6d298ed592e97c7873d687ced2a75e886441bd7d1a9cfd77a2aa5c868b8f09' + image: 'index.docker.io/sourcegraph/postgres-12-alpine:169594_2022-08-27_c479e442c579@sha256:dc6528d1e17da72d5fd1a20fbcdbf223558906db996df644461974ff3c309a50' cpus: 4 mem_limit: '4g' shm_size: '1g' @@ -583,7 +556,7 @@ services: # for this container will need to be updated to reflect the new connection information. pgsql-exporter: container_name: pgsql-exporter - image: 'index.docker.io/sourcegraph/postgres_exporter:162246_2022-07-20_15dd0e0df1cc@sha256:10cf8f8a0e2a649fb487da8fb3b4f1162d14f1ecfc1c9db87a20b1726b98b324' + image: 'index.docker.io/sourcegraph/postgres_exporter:169594_2022-08-27_c479e442c579@sha256:bdf3289b0d7c2ac648922a8998fe15b995cd6dbf2c58898eeab4881bcc27f665' cpus: 0.1 mem_limit: '50m' networks: @@ -602,7 +575,7 @@ services: # codeintel-db: container_name: codeintel-db - image: 'index.docker.io/sourcegraph/codeintel-db:162246_2022-07-20_15dd0e0df1cc@sha256:202c609e60f79cd4a8ad10ea92f84324caab6f3cdfdfac19c1226e591ce0208a' + image: 'index.docker.io/sourcegraph/codeintel-db:169594_2022-08-27_c479e442c579@sha256:74f76cbaa40ee7195fa3fbb55a01c597a131853236f14d1c0b1d26bd913c9c96' cpus: 4 mem_limit: '4g' shm_size: '1g' @@ -630,7 +603,7 @@ services: # for this container will need to be updated to reflect the new connection information. codeintel-db-exporter: container_name: codeintel-db-exporter - image: 'index.docker.io/sourcegraph/postgres_exporter:162246_2022-07-20_15dd0e0df1cc@sha256:10cf8f8a0e2a649fb487da8fb3b4f1162d14f1ecfc1c9db87a20b1726b98b324' + image: 'index.docker.io/sourcegraph/postgres_exporter:169594_2022-08-27_c479e442c579@sha256:bdf3289b0d7c2ac648922a8998fe15b995cd6dbf2c58898eeab4881bcc27f665' cpus: 0.1 mem_limit: '50m' networks: @@ -649,7 +622,7 @@ services: # codeinsights-db: container_name: codeinsights-db - image: 'index.docker.io/sourcegraph/codeinsights-db:162246_2022-07-20_15dd0e0df1cc@sha256:a2a1cfb28583a02c0dd44f1eeb9d9aafd5b8d70c5efab15c8df232b7f1f290b2' + image: 'index.docker.io/sourcegraph/codeinsights-db:169594_2022-08-27_c479e442c579@sha256:9ffd651428394c0589cb81b131f394efcd16e86e5f9f757215e26dbc3b4f7782' cpus: 4 mem_limit: '2g' shm_size: '1g' @@ -682,7 +655,7 @@ services: # for this container will need to be updated to reflect the new connection information. codeinsights-db-exporter: container_name: codeinsights-db-exporter - image: 'index.docker.io/sourcegraph/postgres_exporter:162246_2022-07-20_15dd0e0df1cc@sha256:10cf8f8a0e2a649fb487da8fb3b4f1162d14f1ecfc1c9db87a20b1726b98b324' + image: 'index.docker.io/sourcegraph/postgres_exporter:169594_2022-08-27_c479e442c579@sha256:bdf3289b0d7c2ac648922a8998fe15b995cd6dbf2c58898eeab4881bcc27f665' cpus: 0.1 mem_limit: '50m' networks: @@ -701,7 +674,7 @@ services: # minio: container_name: minio - image: 'index.docker.io/sourcegraph/minio:162246_2022-07-20_15dd0e0df1cc@sha256:d5377e0c6e4ed742c551f253591d4a1a7f3a104ca17c51d46d6324206577f209' + image: 'index.docker.io/sourcegraph/minio:169594_2022-08-27_c479e442c579@sha256:50319e1de1b733fac50aeabc470a6dc0cd827ffd6e6bee0d094494f0bce28ac6' cpus: 1 mem_limit: '1g' environment: @@ -728,7 +701,7 @@ services: # redis-cache: container_name: redis-cache - image: 'index.docker.io/sourcegraph/redis-cache:162246_2022-07-20_15dd0e0df1cc@sha256:8038cae39a503457971f3e61e843e0bd2eefff3d6dd1e357755d27842e0e19e0' + image: 'index.docker.io/sourcegraph/redis-cache:169594_2022-08-27_c479e442c579@sha256:1478a27af2091f22e60f217abac439b5fd35a4a2ce980d526929dbca1298df54' cpus: 1 mem_limit: '7g' volumes: @@ -744,7 +717,7 @@ services: # redis-store: container_name: redis-store - image: 'index.docker.io/sourcegraph/redis-store:162246_2022-07-20_15dd0e0df1cc@sha256:8873c0867b9956244f97cceb2f66063562b00653e30aa9e4b60fd6fb13b52060' + image: 'index.docker.io/sourcegraph/redis-store:169594_2022-08-27_c479e442c579@sha256:0232949166a4fb1aba519ea14e0917c53493a950a5a75f10af81d4557c7a15b2' cpus: 1 mem_limit: '7g' volumes: @@ -753,6 +726,23 @@ services: - sourcegraph restart: always + # Description: Ingests and exports OpenTelemetry data. + # + # Ports exposed to other Sourcegraph services: 4317 (receiver), 55679 (zpages) + # Ports exposed to the public internet: none + otel-collector: + container_name: otel-collector + image: 'index.docker.io/sourcegraph/opentelemetry-collector:169594_2022-08-27_c479e442c579@sha256:d35ab95bba6604a9f0ba7edbdf209ba5e53c7ad918d7dcb084b8a4603b0e8257' + cpus: 0.5 + mem_limit: '512m' + networks: + - sourcegraph + restart: always + # Default configurations are shipped in '/etc/otel-collector/configs/' + command: ['--config', '/etc/otel-collector/configs/logging.yaml'] + volumes: + - '../otel-collector/config.yaml:/etc/otel-collector/config.yaml' + volumes: caddy: gitserver-0: diff --git a/docker-compose/jaeger/docker-compose.yaml b/docker-compose/jaeger/docker-compose.yaml new file mode 100644 index 00000000..122fa4bb --- /dev/null +++ b/docker-compose/jaeger/docker-compose.yaml @@ -0,0 +1,45 @@ +version: '2.4' +services: + # Description: Jaeger all-in-one instance + # (https://www.jaegertracing.io/docs/1.17/getting-started/#all-in-one) for distributed tracing. + # + # Disk: none + # Ports exposed to other Sourcegraph services: 5778/TCP 6831/UDP 6832/UDP 14250/TCP + # Ports exposed to the public internet: none + # Ports exposed to site admins only: 16686/HTTP + # + jaeger: + container_name: jaeger + image: 'index.docker.io/sourcegraph/jaeger-all-in-one:169594_2022-08-27_c479e442c579@sha256:eed16144aada80f20e72c86c67ed89ba3aca109cfac25f4fe68b7fc9a0588414' + cpus: 0.5 + mem_limit: '512m' + ports: + # Query port + - '0.0.0.0:16686:16686' + # Collector port + - '0.0.0.0:14250:14250' + # Agent ports + - '0.0.0.0:5778:5778' + - '0.0.0.0:6831:6831' + - '0.0.0.0:6832:6832' + networks: + - sourcegraph + restart: always + command: ['--memory.max-traces=20000'] + environment: + - 'SAMPLING_STRATEGIES_FILE=/etc/jaeger/sampling_strategies.json' + + # Configure collector to send traces to Jaeger + otel-collector: + environment: + - JAEGER_HOST=jaeger + command: ['--config', '/etc/otel-collector/configs/jaeger.yaml'] + + # Let frontend proxy to Jaeger interface + sourcegraph-frontend-0: + environment: + - 'JAEGER_SERVER_URL=http://jaeger:16686' + + sourcegraph-frontend-internal: + environment: + - 'JAEGER_SERVER_URL=http://jaeger:16686' diff --git a/docker-compose/otel/docker-compose.yaml b/docker-compose/otel/docker-compose.yaml deleted file mode 100644 index b8f2024d..00000000 --- a/docker-compose/otel/docker-compose.yaml +++ /dev/null @@ -1,65 +0,0 @@ -version: '2.4' -services: - # Description: Ingests OpenTelemetry data. - # - # Disk: 128GB / non-persistent SSD - # Ports exposed to other Sourcegraph services: 4317 (receiver), 55679 (zpages) - # Ports exposed to the public internet: none - otel-collector: - container_name: otel-collector - image: 'index.docker.io/sourcegraph/opentelemetry-collector:162246_2022-07-20_15dd0e0df1cc@sha256:3d64a9d20a791ba1c5d717ecb64cc19a10b1e30d2aac277143e773c5a9d28c2f' - cpus: 0.5 - mem_limit: '512m' - networks: - - sourcegraph - restart: always - environment: - - JAEGER_HOST=jaeger - command: ['--config', '/etc/otel-collector/configs/jaeger.yaml'] - - # Apply exporter configuration - to learn more, see: - # https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options - - sourcegraph-frontend-0: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - sourcegraph-frontend-internal: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - gitserver-0: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - zoekt-indexserver-0: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - zoekt-webserver-0: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - searcher-0: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - github-proxy: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - precise-code-intel-worker: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - repo-updater: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - worker: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 - - symbols-0: - environment: - - OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317 diff --git a/otel-collector/config.yaml b/otel-collector/config.yaml new file mode 100644 index 00000000..b159b397 --- /dev/null +++ b/otel-collector/config.yaml @@ -0,0 +1,34 @@ +# This is the template configuration for OpenTelemetry collector, and is not used by default. +# It is mounted to '/etc/otel-collector/config.yaml' in the otel-collector container. + +exporters: + # Add your exporter(s) configuration here. For each exporter, make sure it is enabled + # in the service configuration below. + # Refer to our OpenTelemetry docs for information on how to configure different exporters: + # https://docs.sourcegraph.com/admin/observability/opentelemetry + +service: + pipelines: + traces: + exporters: + # Add the name of your exporter(s) here, e.g.: + # - logging + receivers: + - otlp # Do not remove this receiver + extensions: + # Do not remove these extensions + - health_check + - zpages + +receivers: + otlp: + protocols: + grpc: # port 4317 + http: # port 4318 + +extensions: + health_check: + port: 13133 + zpages: + endpoint: "localhost:55679" +