From fa50dd570c866b77b3fc3932cebe10e6d278f84f Mon Sep 17 00:00:00 2001 From: Niklas van Schrick Date: Thu, 16 Jul 2026 20:00:38 +0200 Subject: [PATCH] Add OpenTelemetry configuration for sagittarius --- ...sagittarius.sagittarius-background.yml.erb | 4 +++ .../sagittarius.sagittarius-cable.yml.erb | 4 +++ .../sagittarius.sagittarius-grpc.yml.erb | 4 +++ .../sagittarius.sagittarius-web.yml.erb | 4 +++ .../templates/sagittarius.sagittarius.yml.erb | 9 +++++++ docker-compose/.env | 11 ++++++++ docker-compose/docker-compose.yml | 27 +++++-------------- 7 files changed, 43 insertions(+), 20 deletions(-) create mode 100644 container/config-generator/templates/sagittarius.sagittarius-background.yml.erb create mode 100644 container/config-generator/templates/sagittarius.sagittarius-cable.yml.erb create mode 100644 container/config-generator/templates/sagittarius.sagittarius-grpc.yml.erb create mode 100644 container/config-generator/templates/sagittarius.sagittarius-web.yml.erb diff --git a/container/config-generator/templates/sagittarius.sagittarius-background.yml.erb b/container/config-generator/templates/sagittarius.sagittarius-background.yml.erb new file mode 100644 index 0000000..269bd97 --- /dev/null +++ b/container/config-generator/templates/sagittarius.sagittarius-background.yml.erb @@ -0,0 +1,4 @@ +<% if env?('OPENTELEMETRY_ENABLED') %> +opentelemetry: + service_name: <%= env('OPENTELEMETRY_SERVICE_NAME_SAGITTARIUS_BACKGROUND', 'sagittarius-background') %> +<% end %> diff --git a/container/config-generator/templates/sagittarius.sagittarius-cable.yml.erb b/container/config-generator/templates/sagittarius.sagittarius-cable.yml.erb new file mode 100644 index 0000000..f6c69fc --- /dev/null +++ b/container/config-generator/templates/sagittarius.sagittarius-cable.yml.erb @@ -0,0 +1,4 @@ +<% if env?('OPENTELEMETRY_ENABLED') %> +opentelemetry: + service_name: <%= env('OPENTELEMETRY_SERVICE_NAME_SAGITTARIUS_CABLE', 'sagittarius-cable') %> +<% end %> diff --git a/container/config-generator/templates/sagittarius.sagittarius-grpc.yml.erb b/container/config-generator/templates/sagittarius.sagittarius-grpc.yml.erb new file mode 100644 index 0000000..7da970e --- /dev/null +++ b/container/config-generator/templates/sagittarius.sagittarius-grpc.yml.erb @@ -0,0 +1,4 @@ +<% if env?('OPENTELEMETRY_ENABLED') %> +opentelemetry: + service_name: <%= env('OPENTELEMETRY_SERVICE_NAME_SAGITTARIUS_GRPC', 'sagittarius-grpc') %> +<% end %> diff --git a/container/config-generator/templates/sagittarius.sagittarius-web.yml.erb b/container/config-generator/templates/sagittarius.sagittarius-web.yml.erb new file mode 100644 index 0000000..bcbf09b --- /dev/null +++ b/container/config-generator/templates/sagittarius.sagittarius-web.yml.erb @@ -0,0 +1,4 @@ +<% if env?('OPENTELEMETRY_ENABLED') %> +opentelemetry: + service_name: <%= env('OPENTELEMETRY_SERVICE_NAME_SAGITTARIUS_WEB', 'sagittarius-web') %> +<% end %> diff --git a/container/config-generator/templates/sagittarius.sagittarius.yml.erb b/container/config-generator/templates/sagittarius.sagittarius.yml.erb index 0fe874f..41bc418 100644 --- a/container/config-generator/templates/sagittarius.sagittarius.yml.erb +++ b/container/config-generator/templates/sagittarius.sagittarius.yml.erb @@ -24,3 +24,12 @@ velorum: host: <%= env!('VELORUM_HOST') %>:<%= env!('VELORUM_PORT') %> jwt_secret: <%= env!('VELORUM_JWT_SECRET') %> <% end -%> + +opentelemetry: +<% opentelemetry_enabled = env?('OPENTELEMETRY_ENABLED') %> + enabled: <%= opentelemetry_enabled %> +<% if opentelemetry_enabled %> + logs_endpoint: <%= env!('OPENTELEMETRY_LOGS_HTTP_ENDPOINT') %> + metrics_endpoint: <%= env!('OPENTELEMETRY_METRICS_HTTP_ENDPOINT') %> + traces_endpoint: <%= env!('OPENTELEMETRY_TRACES_HTTP_ENDPOINT') %> +<% end %> diff --git a/docker-compose/.env b/docker-compose/.env index 550cc2a..73ea18d 100644 --- a/docker-compose/.env +++ b/docker-compose/.env @@ -70,6 +70,17 @@ VELORUM_JWT_SECRET=088cfc7a7fc2b07696d8ee5e1ea9d642 # token cost multiplier for this model # VELORUM_MODEL_GPT5_TOKEN_COST=1 +# OpenTelemetry +OPENTELEMETRY_ENABLED=false +OPENTELEMETRY_LOGS_HTTP_ENDPOINT=http://localhost:4318/v1/logs +OPENTELEMETRY_METRICS_HTTP_ENDPOINT=http://localhost:4318/v1/metrics +OPENTELEMETRY_TRACES_HTTP_ENDPOINT=http://localhost:4318/v1/traces + +# OPENTELEMETRY_SERVICE_NAME_SAGITTARIUS_WEB=sagittarius-web +# OPENTELEMETRY_SERVICE_NAME_SAGITTARIUS_CABLE=sagittarius-cable +# OPENTELEMETRY_SERVICE_NAME_SAGITTARIUS_GRPC=sagittarius-grpc +# OPENTELEMETRY_SERVICE_NAME_SAGITTARIUS_BACKGROUND=sagittarius-background + # Internal config options SAGITTARIUS_RAILS_HOST=sagittarius-rails-web SAGITTARIUS_RAILS_PORT=3000 diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 34f6349..dd5cfac 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -40,13 +40,9 @@ services: INITIAL_ROOT_PASSWORD: ${INITIAL_ROOT_PASSWORD} INITIAL_ROOT_MAIL: ${INITIAL_ROOT_MAIL} INITIAL_RUNTIME_TOKEN: ${INITIAL_RUNTIME_TOKEN} + SAGITTARIUS_CONFIG_FILES: /tmp/generated-configs/sagittarius.sagittarius.yml,/tmp/generated-configs/sagittarius.sagittarius-web.yml volumes: - generated-configs:/tmp/generated-configs:ro - entrypoint: | - sh -c " - cp /tmp/generated-configs/sagittarius.sagittarius.yml config/sagittarius.yml - exec bin/docker-entrypoint ./bin/rails server - " restart: unless-stopped healthcheck: test: ["CMD-SHELL", "curl --fail http://localhost:3000/health/liveness"] @@ -63,11 +59,8 @@ services: condition: service_healthy volumes: - generated-configs:/tmp/generated-configs:ro - entrypoint: | - sh -c " - cp /tmp/generated-configs/sagittarius.sagittarius.yml config/sagittarius.yml - exec bin/docker-entrypoint bundle exec good_job - " + environment: + SAGITTARIUS_CONFIG_FILES: /tmp/generated-configs/sagittarius.sagittarius.yml,/tmp/generated-configs/sagittarius.sagittarius-background.yml restart: unless-stopped profiles: - ide @@ -79,11 +72,8 @@ services: condition: service_healthy volumes: - generated-configs:/tmp/generated-configs:ro - entrypoint: | - sh -c " - cp /tmp/generated-configs/sagittarius.sagittarius.yml config/sagittarius.yml - exec bin/docker-entrypoint ./bin/grpc_server - " + environment: + SAGITTARIUS_CONFIG_FILES: /tmp/generated-configs/sagittarius.sagittarius.yml,/tmp/generated-configs/sagittarius.sagittarius-grpc.yml restart: unless-stopped profiles: - ide @@ -95,11 +85,8 @@ services: condition: service_healthy volumes: - generated-configs:/tmp/generated-configs:ro - entrypoint: | - sh -c " - cp /tmp/generated-configs/sagittarius.sagittarius.yml config/sagittarius.yml - exec bin/docker-entrypoint bundle exec puma config.cable.ru - " + environment: + SAGITTARIUS_CONFIG_FILES: /tmp/generated-configs/sagittarius.sagittarius.yml,/tmp/generated-configs/sagittarius.sagittarius-cable.yml restart: unless-stopped profiles: - ide