You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The OpenShift deployment configures ingestion limits to apply back-pressure before Loki exhausts its memory ceiling:
77
+
78
+
| Setting | Value | Purpose |
79
+
|---------|-------|---------|
80
+
|`ingestion_rate_mb`| 4 | Sustained ingest rate per tenant (MB/s) |
81
+
|`ingestion_burst_size_mb`| 8 | Burst allowance above the sustained rate |
82
+
|`chunk_idle_period`| 30m | Flush idle chunks to disk after this interval |
83
+
|`chunk_target_size`| 1536000 (~1.5MB) | Flush a chunk to disk once it reaches this size |
84
+
85
+
Without these limits, Loki accumulates unbounded in-memory chunks when ingestion outpaces disk flushes, eventually reaching the memory ceiling and being OOMKilled. The ingestion limits cause Promtail to receive a `429 Too Many Requests` response and retry, rather than Loki silently growing until it is killed.
86
+
87
+
## Prometheus Metrics
88
+
89
+
Loki exposes a `/metrics` endpoint on its HTTP port. The PLG Prometheus instance scrapes it via a dedicated `loki` scrape job configured in `prometheus-configmap.yaml`. Use `{job="loki"}` as the label selector in queries, for example:
Copy file name to clipboardExpand all lines: docs-md/PLG_DEPLOYMENT_INTEGRATION.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,6 +74,22 @@ The PLG deployment is completely independent of the Kustomize-based application
74
74
- No Kustomize base or overlay files are modified for PLG
75
75
- If PLG deployment fails, the application deployment is unaffected
76
76
77
+
## Prometheus RBAC
78
+
79
+
Prometheus uses Kubernetes pod service discovery (`kubernetes_sd_configs`) to scrape `backend-services` and `temporal-worker` pods by IP across replicas. This requires permission to list and watch pods in the namespace.
80
+
81
+
The chart creates a dedicated `ServiceAccount`, `Role` (pods: `get`/`list`/`watch`), and `RoleBinding` for the Prometheus StatefulSet. These are scoped to the release namespace only. The `default` service account is not used — it has no pod-list permissions on OpenShift.
82
+
83
+
## ches-adapter and Alertmanager
84
+
85
+
The ches-adapter Deployment, Service, PodDisruptionBudget, and sidecar ConfigMaps are only rendered when **both**`alertmanager.notificationsEnabled: true` and `alertmanager.notificationChannel: "ches"`. When notifications are disabled (the default), none of these resources are created and no ches-adapter image is required.
86
+
87
+
Similarly, the `ches-notifications` and `teams-notifications` receivers in the Alertmanager config are only emitted when `notificationsEnabled: true`. This prevents Alertmanager from failing to start due to empty webhook URL validation when notifications are off.
88
+
89
+
## Grafana Storage
90
+
91
+
Grafana stores its SQLite database and alert history on a `ReadWriteOnce` PersistentVolumeClaim. The Deployment uses `strategy: Recreate` rather than the default `RollingUpdate`, so the old pod is terminated before the new one starts. This prevents `Multi-Attach` errors caused by two pods competing for the same RWO volume during an upgrade.
92
+
77
93
## Accessing Grafana
78
94
79
95
Grafana is not exposed via an OpenShift Route. Access it via port-forwarding:
Copy file name to clipboardExpand all lines: docs-md/PROMTAIL_SIDECARS.md
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,14 +22,16 @@ Each application pod includes a Promtail sidecar container that:
22
22
23
23
## Resource Limits
24
24
25
-
All Promtail sidecars use minimal resource allocations:
25
+
Promtail sidecars on PVC-backed services (`backend-services`, `temporal-worker`) use the following allocations:
26
26
27
27
| Resource | Request | Limit |
28
28
|----------|---------|-------|
29
-
| Memory |32Mi|64Mi|
29
+
| Memory |64Mi|128Mi|
30
30
| CPU | 50m | 100m |
31
31
32
-
These defaults are sized for low-traffic environments. To adjust resource limits, modify the Promtail container resource specifications in the relevant deployment manifests under `deployments/openshift/kustomize/base/`.
32
+
The memory limit is set to 128Mi to prevent OOMKills caused by Loki backpressure. When Loki is under memory pressure it slows ingest responses, causing Promtail to buffer pending log batches in-heap. A 64Mi limit was insufficient in practice and caused CrashLoopBackOff on both `backend-services` and `temporal-worker` pods.
33
+
34
+
To adjust resource limits, modify the Promtail container resource specifications in the relevant deployment manifests under `deployments/openshift/kustomize/base/`.
0 commit comments