align gw telemetry in k8s with unified chart#256
Conversation
📝 WalkthroughWalkthroughThis PR updates the Gateway telemetry documentation to replace older Kubernetes setup instructions with a consolidated, Secret-based approach. It introduces a new section explaining OpenTelemetry config mounting via Secrets, provides per-backend example configurations for Datadog and Prometheus, and integrates log-forwarding guidance into the same Secret-bound configuration workflow. ChangesKubernetes Telemetry and Logging Configuration
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
docs/Akeyless Gateway/operate-gateway/gateway-telemetry-and-metrics.md (1)
208-219: ⚡ Quick winPrefer
stringDatato avoid manual Base64 encoding errors.The current flow works, but asking users to pre-encode content is error-prone. Using
stringDatakeeps the example simpler and safer for docs readers.Suggested doc refactor
apiVersion: v1 kind: Secret metadata: name: gw-metrics-secret namespace: <your-namespace> type: Opaque -data: - otel-config.yaml: <base64-encoded-otel-config> +stringData: + otel-config.yaml: | + <paste-otel-config-yaml-content-here>As per coding guidelines, "Examples and commands in documentation must be realistic and internally consistent".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@docs/Akeyless` Gateway/operate-gateway/gateway-telemetry-and-metrics.md around lines 208 - 219, The Secret example requires manual Base64 encoding which is error-prone; update the Kubernetes Secret for gw-metrics-secret to use stringData instead of data so authors can paste plain YAML for otel-config.yaml directly (refer to the Secret kind and the key otel-config.yaml in the example) — replace the data: block with stringData: and put the unencoded otel-config content as the value for otel-config.yaml to make the docs realistic and easier to follow.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/Akeyless` Gateway/operate-gateway/gateway-telemetry-and-metrics.md:
- Around line 287-295: The Prometheus scrape example uses localhost:8889 which
is wrong in Kubernetes; update the scrape_configs example (job_name: 'akeyless',
scrape_interval, static_configs -> targets) to use the Gateway Service DNS
instead of localhost (e.g., a Kubernetes service FQDN or service name with
namespace placeholder like <gateway-service>.<namespace>.svc.cluster.local:8889
or <gateway-service>:8889) so Prometheus scrapes the Gateway pod via the cluster
service; keep job_name 'akeyless' and port 8889 but replace 'localhost' with the
service DNS and add a short note about replacing <namespace> with the actual
namespace.
---
Nitpick comments:
In `@docs/Akeyless` Gateway/operate-gateway/gateway-telemetry-and-metrics.md:
- Around line 208-219: The Secret example requires manual Base64 encoding which
is error-prone; update the Kubernetes Secret for gw-metrics-secret to use
stringData instead of data so authors can paste plain YAML for otel-config.yaml
directly (refer to the Secret kind and the key otel-config.yaml in the example)
— replace the data: block with stringData: and put the unencoded otel-config
content as the value for otel-config.yaml to make the docs realistic and easier
to follow.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e594d5ab-4a95-4628-ae4d-49e7d4e2ec3a
📒 Files selected for processing (1)
docs/Akeyless Gateway/operate-gateway/gateway-telemetry-and-metrics.md
| Add a scrape target in Prometheus: | ||
|
|
||
| ```yaml | ||
| scrape_configs: | ||
| - job_name: 'akeyless' | ||
| scrape_interval: 10s | ||
| static_configs: | ||
| - targets: ['localhost:8889'] | ||
| ``` |
There was a problem hiding this comment.
Use a Kubernetes-reachable target instead of localhost in Prometheus scrape config.
In Kubernetes, localhost:8889 points to the Prometheus pod itself, not the Gateway Service. This example can cause scrape failures.
Suggested doc fix
scrape_configs:
- job_name: 'akeyless'
scrape_interval: 10s
static_configs:
- - targets: ['localhost:8889']
+ - targets: ['<gateway-service-name>.<namespace>.svc.cluster.local:8889']As per coding guidelines, "Examples and commands in documentation must be realistic and internally consistent".
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/Akeyless` Gateway/operate-gateway/gateway-telemetry-and-metrics.md
around lines 287 - 295, The Prometheus scrape example uses localhost:8889 which
is wrong in Kubernetes; update the scrape_configs example (job_name: 'akeyless',
scrape_interval, static_configs -> targets) to use the Gateway Service DNS
instead of localhost (e.g., a Kubernetes service FQDN or service name with
namespace placeholder like <gateway-service>.<namespace>.svc.cluster.local:8889
or <gateway-service>:8889) so Prometheus scrapes the Gateway pod via the cluster
service; keep job_name 'akeyless' and port 8889 but replace 'localhost' with the
service DNS and add a short note about replacing <namespace> with the actual
namespace.
Summary
akeyless-gatewaychart.Validation
Safety Checklist
<service-account-name>@<project-id>.iam.gserviceaccount.com,arn:aws:iam::<aws-account-id>:root,<azure-tenant-id>, and<resource-ocid>).Jira
Summary by CodeRabbit