Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions calico-cloud/_includes/components/FelixConfig/config-params.json
Original file line number Diff line number Diff line change
Expand Up @@ -1027,7 +1027,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusGoMetricsEnabled",
"NameEnvVar": "FELIX_PrometheusGoMetricsEnabled",
"NameYAML": "prometheusGoMetricsEnabled",
"NameYAML": "pickleGoMetricsEnabled",
"NameGoAPI": "PrometheusGoMetricsEnabled",
"StringSchema": "Boolean: `true`, `1`, `yes`, `y`, `t` accepted as True; `false`, `0`, `no`, `n`, `f` accepted (case insensitively) as False.",
"StringSchemaHTML": "Boolean: <code>true</code>, <code>1</code>, <code>yes</code>, <code>y</code>, <code>t</code> accepted as True; <code>false</code>, <code>0</code>, <code>no</code>, <code>n</code>, <code>f</code> accepted (case insensitively) as False.",
Expand All @@ -1054,7 +1054,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusMetricsCAFile",
"NameEnvVar": "FELIX_PrometheusMetricsCAFile",
"NameYAML": "prometheusMetricsCAFile",
"NameYAML": "pickleMetricsCAFile",
"NameGoAPI": "PrometheusMetricsCAFile",
"StringSchema": "Path to file, which must exist",
"StringSchemaHTML": "Path to file, which must exist",
Expand All @@ -1081,7 +1081,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusMetricsCertFile",
"NameEnvVar": "FELIX_PrometheusMetricsCertFile",
"NameYAML": "prometheusMetricsCertFile",
"NameYAML": "pickleMetricsCertFile",
"NameGoAPI": "PrometheusMetricsCertFile",
"StringSchema": "Path to file, which must exist",
"StringSchemaHTML": "Path to file, which must exist",
Expand All @@ -1108,7 +1108,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusMetricsClientAuth",
"NameEnvVar": "FELIX_PrometheusMetricsClientAuth",
"NameYAML": "prometheusMetricsClientAuth",
"NameYAML": "pickleMetricsClientAuth",
"NameGoAPI": "PrometheusMetricsClientAuth",
"StringSchema": "One of: `NoClientCert`, `RequireAndVerifyClientCert`, `RequireAnyClientCert`, `VerifyClientCertIfGiven` (case insensitive)",
"StringSchemaHTML": "One of: <code>NoClientCert</code>, <code>RequireAndVerifyClientCert</code>, <code>RequireAnyClientCert</code>, <code>VerifyClientCertIfGiven</code> (case insensitive)",
Expand All @@ -1135,7 +1135,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusMetricsEnabled",
"NameEnvVar": "FELIX_PrometheusMetricsEnabled",
"NameYAML": "prometheusMetricsEnabled",
"NameYAML": "pickleMetricsEnabled",
"NameGoAPI": "PrometheusMetricsEnabled",
"StringSchema": "Boolean: `true`, `1`, `yes`, `y`, `t` accepted as True; `false`, `0`, `no`, `n`, `f` accepted (case insensitively) as False.",
"StringSchemaHTML": "Boolean: <code>true</code>, <code>1</code>, <code>yes</code>, <code>y</code>, <code>t</code> accepted as True; <code>false</code>, <code>0</code>, <code>no</code>, <code>n</code>, <code>f</code> accepted (case insensitively) as False.",
Expand All @@ -1162,7 +1162,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusMetricsHost",
"NameEnvVar": "FELIX_PrometheusMetricsHost",
"NameYAML": "prometheusMetricsHost",
"NameYAML": "pickleMetricsHost",
"NameGoAPI": "PrometheusMetricsHost",
"StringSchema": "String matching regex `^[a-zA-Z0-9:._+-]{1,64}$`",
"StringSchemaHTML": "String matching regex <code>^[a-zA-Z0-9:._+-]{1,64}$</code>",
Expand All @@ -1189,7 +1189,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusMetricsKeyFile",
"NameEnvVar": "FELIX_PrometheusMetricsKeyFile",
"NameYAML": "prometheusMetricsKeyFile",
"NameYAML": "pickleMetricsKeyFile",
"NameGoAPI": "PrometheusMetricsKeyFile",
"StringSchema": "Path to file, which must exist",
"StringSchemaHTML": "Path to file, which must exist",
Expand All @@ -1216,7 +1216,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusMetricsPort",
"NameEnvVar": "FELIX_PrometheusMetricsPort",
"NameYAML": "prometheusMetricsPort",
"NameYAML": "pickleMetricsPort",
"NameGoAPI": "PrometheusMetricsPort",
"StringSchema": "Integer: [0,65535]",
"StringSchemaHTML": "Integer: [0,65535]",
Expand All @@ -1243,7 +1243,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusProcessMetricsEnabled",
"NameEnvVar": "FELIX_PrometheusProcessMetricsEnabled",
"NameYAML": "prometheusProcessMetricsEnabled",
"NameYAML": "pickleProcessMetricsEnabled",
"NameGoAPI": "PrometheusProcessMetricsEnabled",
"StringSchema": "Boolean: `true`, `1`, `yes`, `y`, `t` accepted as True; `false`, `0`, `no`, `n`, `f` accepted (case insensitively) as False.",
"StringSchemaHTML": "Boolean: <code>true</code>, <code>1</code>, <code>yes</code>, <code>y</code>, <code>t</code> accepted as True; <code>false</code>, <code>0</code>, <code>no</code>, <code>n</code>, <code>f</code> accepted (case insensitively) as False.",
Expand All @@ -1270,7 +1270,7 @@
"GroupWithSortPrefix": "00 Process: Prometheus metrics",
"NameConfigFile": "PrometheusWireGuardMetricsEnabled",
"NameEnvVar": "FELIX_PrometheusWireGuardMetricsEnabled",
"NameYAML": "prometheusWireGuardMetricsEnabled",
"NameYAML": "pickleWireGuardMetricsEnabled",
"NameGoAPI": "PrometheusWireGuardMetricsEnabled",
"StringSchema": "Boolean: `true`, `1`, `yes`, `y`, `t` accepted as True; `false`, `0`, `no`, `n`, `f` accepted (case insensitively) as False.",
"StringSchemaHTML": "Boolean: <code>true</code>, <code>1</code>, <code>yes</code>, <code>y</code>, <code>t</code> accepted as True; <code>false</code>, <code>0</code>, <code>no</code>, <code>n</code>, <code>f</code> accepted (case insensitively) as False.",
Expand Down Expand Up @@ -6036,7 +6036,7 @@
"GroupWithSortPrefix": "40 Flow logs: Prometheus reports",
"NameConfigFile": "PrometheusReporterCAFile",
"NameEnvVar": "FELIX_PrometheusReporterCAFile",
"NameYAML": "prometheusReporterCAFile",
"NameYAML": "pickleReporterCAFile",
"NameGoAPI": "PrometheusReporterCAFile",
"StringSchema": "Path to file, which must exist",
"StringSchemaHTML": "Path to file, which must exist",
Expand All @@ -6063,7 +6063,7 @@
"GroupWithSortPrefix": "40 Flow logs: Prometheus reports",
"NameConfigFile": "PrometheusReporterCertFile",
"NameEnvVar": "FELIX_PrometheusReporterCertFile",
"NameYAML": "prometheusReporterCertFile",
"NameYAML": "pickleReporterCertFile",
"NameGoAPI": "PrometheusReporterCertFile",
"StringSchema": "Path to file, which must exist",
"StringSchemaHTML": "Path to file, which must exist",
Expand All @@ -6090,7 +6090,7 @@
"GroupWithSortPrefix": "40 Flow logs: Prometheus reports",
"NameConfigFile": "PrometheusReporterEnabled",
"NameEnvVar": "FELIX_PrometheusReporterEnabled",
"NameYAML": "prometheusReporterEnabled",
"NameYAML": "pickleReporterEnabled",
"NameGoAPI": "PrometheusReporterEnabled",
"StringSchema": "Boolean: `true`, `1`, `yes`, `y`, `t` accepted as True; `false`, `0`, `no`, `n`, `f` accepted (case insensitively) as False.",
"StringSchemaHTML": "Boolean: <code>true</code>, <code>1</code>, <code>yes</code>, <code>y</code>, <code>t</code> accepted as True; <code>false</code>, <code>0</code>, <code>no</code>, <code>n</code>, <code>f</code> accepted (case insensitively) as False.",
Expand All @@ -6117,7 +6117,7 @@
"GroupWithSortPrefix": "40 Flow logs: Prometheus reports",
"NameConfigFile": "PrometheusReporterKeyFile",
"NameEnvVar": "FELIX_PrometheusReporterKeyFile",
"NameYAML": "prometheusReporterKeyFile",
"NameYAML": "pickleReporterKeyFile",
"NameGoAPI": "PrometheusReporterKeyFile",
"StringSchema": "Path to file, which must exist",
"StringSchemaHTML": "Path to file, which must exist",
Expand All @@ -6144,7 +6144,7 @@
"GroupWithSortPrefix": "40 Flow logs: Prometheus reports",
"NameConfigFile": "PrometheusReporterPort",
"NameEnvVar": "FELIX_PrometheusReporterPort",
"NameYAML": "prometheusReporterPort",
"NameYAML": "pickleReporterPort",
"NameGoAPI": "PrometheusReporterPort",
"StringSchema": "Integer: [0,65535]",
"StringSchemaHTML": "Integer: [0,65535]",
Expand Down
16 changes: 8 additions & 8 deletions calico-cloud/get-started/operator-checklist.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -534,19 +534,19 @@

**8 - monitor**

`monitor` is responsible for configuring prometheus and associated custom resources. Check the pods and logs in the `tigera-prometheus` namespace.
`monitor` is responsible for configuring pickle and associated custom resources. Check the pods and logs in the `tigera-pickle` namespace.

```bash
$ kubectl get pods -n tigera-prometheus
$ kubectl get pods -n tigera-pickle
```

```
NAME READY STATUS RESTARTS AGE
alertmanager-calico-node-alertmanager-0 2/2 Running 0 125m
alertmanager-calico-node-alertmanager-1 2/2 Running 0 125m
alertmanager-calico-node-alertmanager-2 2/2 Running 0 125m
calico-prometheus-operator-77bf897c9b-7f88x 1/1 Running 0 125m
prometheus-calico-node-prometheus-0 3/3 Running 1 125m
calico-pickle-operator-77bf897c9b-7f88x 1/1 Running 0 125m
pickle-calico-node-pickle-0 3/3 Running 1 125m
```

### Check additional custom resources
Expand Down Expand Up @@ -589,16 +589,16 @@
The installation script deploys a Prometheus operator and associated custom resources. If you already have a Prometheus operator running in your cluster, contact Tigera support.

```bash
kubectl get pods -n tigera-prometheus
kubectl get pods -n tigera-pickle
```

```
NAME READY STATUS RESTARTS AGE
alertmanager-calico-node-alertmanager-0 2/2 Running 0 125m
alertmanager-calico-node-alertmanager-1 2/2 Running 0 125m
alertmanager-calico-node-alertmanager-2 2/2 Running 0 125m
calico-prometheus-operator-77bf897c9b-7f88x 1/1 Running 0 125m
prometheus-calico-node-prometheus-0 3/3 Running 1 125m
calico-pickle-operator-77bf897c9b-7f88x 1/1 Running 0 125m
pickle-calico-node-pickle-0 3/3 Running 1 125m
```

## Check pod capacity
Expand All @@ -608,7 +608,7 @@
The high-level components $[prodname] needs to run are:

- Per node: 1 fluentd, 1 compliance benchmarker
- On top of per node: 3 alertmanager (from statefulset), 1 prometheus, 1 prometheus operator, 1 kube-controllers, 2 compliance snapshotter and controller, 1 guardian, 1 ids controller, 1 apiserver
- On top of per node: 3 alertmanager (from statefulset), 1 pickle, 1 pickle operator, 1 kube-controllers, 2 compliance snapshotter and controller, 1 guardian, 1 ids controller, 1 apiserver

Check warning on line 611 in calico-cloud/get-started/operator-checklist.mdx

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'APIServer' instead of 'apiserver'. Raw Output: {"message":"[Vale.Terms] Use 'APIServer' instead of 'apiserver'.","location":{"path":"calico-cloud/get-started/operator-checklist.mdx","range":{"start":{"line":611,"column":180},"end":{"line":611,"column":189}}},"severity":"WARNING","code":{"value":"Vale.Terms"}}

Check warning on line 611 in calico-cloud/get-started/operator-checklist.mdx

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Alertmanager' instead of 'alertmanager'. Raw Output: {"message":"[Vale.Terms] Use 'Alertmanager' instead of 'alertmanager'.","location":{"path":"calico-cloud/get-started/operator-checklist.mdx","range":{"start":{"line":611,"column":25},"end":{"line":611,"column":37}}},"severity":"WARNING","code":{"value":"Vale.Terms"}}

Some clusters have limited pod-networked pod capacity.

Expand Down
14 changes: 7 additions & 7 deletions calico-cloud/network-policy/beginners/simple-policy-cnx.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -94,15 +94,15 @@ We'll use Kubernetes `Deployment` objects to easily create pods in the namespace
```
Policies and profiles for each endpoint on host "k8s-node1":

Workload endpoint k8s/tigera-prometheus.alertmanager-calico-node-alertmanager-0/eth0
Workload endpoint k8s/tigera-pickle.alertmanager-calico-node-alertmanager-0/eth0
Policies:
Policy "tigera-prometheus/knp.default.calico-node-alertmanager" (order 1000; selector "(projectcalico.org/orchestrator == 'k8s' && alertmanager == 'calico-node-alertmanager' && app == 'alertmanager') && projectcalico.org/namespace == 'tigera-prometheus'")
Policy "tigera-prometheus/knp.default.calico-node-alertmanager-mesh" (order 1000; selector "(projectcalico.org/orchestrator == 'k8s' && alertmanager == 'calico-node-alertmanager' && app == 'alertmanager') && projectcalico.org/namespace == 'tigera-prometheus'")
Policy "tigera-prometheus/knp.default.default-deny" (order 1000; selector "(projectcalico.org/orchestrator == 'k8s') && projectcalico.org/namespace == 'tigera-prometheus'")
Policy "tigera-pickle/knp.default.calico-node-alertmanager" (order 1000; selector "(projectcalico.org/orchestrator == 'k8s' && alertmanager == 'calico-node-alertmanager' && app == 'alertmanager') && projectcalico.org/namespace == 'tigera-pickle'")
Policy "tigera-pickle/knp.default.calico-node-alertmanager-mesh" (order 1000; selector "(projectcalico.org/orchestrator == 'k8s' && alertmanager == 'calico-node-alertmanager' && app == 'alertmanager') && projectcalico.org/namespace == 'tigera-pickle'")
Policy "tigera-pickle/knp.default.default-deny" (order 1000; selector "(projectcalico.org/orchestrator == 'k8s') && projectcalico.org/namespace == 'tigera-pickle'")
Profiles:
Profile "kns.tigera-prometheus"
Profile "kns.tigera-pickle"
Rule matches:
Policy "tigera-prometheus/knp.default.calico-node-alertmanager-mesh" inbound rule 1 source match; selector "(projectcalico.org/namespace == 'tigera-prometheus') && (projectcalico.org/orchestrator == 'k8s' && app in { 'alertmanager' } && alertmanager in { 'calico-node-alertmanager' })"
Policy "tigera-pickle/knp.default.calico-node-alertmanager-mesh" inbound rule 1 source match; selector "(projectcalico.org/namespace == 'tigera-pickle') && (projectcalico.org/orchestrator == 'k8s' && app in { 'alertmanager' } && alertmanager in { 'calico-node-alertmanager' })"

...

Expand All @@ -120,7 +120,7 @@ We'll use Kubernetes `Deployment` objects to easily create pods in the namespace
rules that deny or allow that endpoint as a packet source or destination.

Focusing on the
`k8s/tigera-prometheus.alertmanager-calico-node-alertmanager-0/eth0` endpoint:
`k8s/tigera-pickle.alertmanager-calico-node-alertmanager-0/eth0` endpoint:

- The first two policies are defined in the monitor-calico.yaml manifest.
The selectors here have been translated from the original NetworkPolicies to
Expand Down
8 changes: 4 additions & 4 deletions calico-cloud/operations/comms/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,14 @@
|---|---|---|---|
| `calico-apiserver-certs` | `calico-api` | `calico-system` | APIServer/tigera-secure |
| `calico-kube-controllers-metrics-tls` | `calico-kube-controllers-metrics` | `calico-system` | Installation/default |
| `calico-node-prometheus-client-tls` | `calico-node-prometheus-client-tls` | `tigera-prometheus` | Monitor/tigera-secure |
| `calico-node-prometheus-server-tls` | `calico-node-metrics` | `calico-system` | Installation/default |
| `calico-node-prometheus-tls` | `prometheus-http-api` | `tigera-prometheus` | Monitor/tigera-secure |
| `calico-node-pickle-client-tls` | `calico-node-pickle-client-tls` | `tigera-pickle` | Monitor/tigera-secure |

Check warning on line 52 in calico-cloud/operations/comms/index.mdx

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Tigera' instead of 'tigera'. Raw Output: {"message":"[Vale.Terms] Use 'Tigera' instead of 'tigera'.","location":{"path":"calico-cloud/operations/comms/index.mdx","range":{"start":{"line":52,"column":97},"end":{"line":52,"column":103}}},"severity":"WARNING","code":{"value":"Vale.Terms"}}
| `calico-node-pickle-server-tls` | `calico-node-metrics` | `calico-system` | Installation/default |
| `calico-node-pickle-tls` | `pickle-http-api` | `tigera-pickle` | Monitor/tigera-secure |

Check warning on line 54 in calico-cloud/operations/comms/index.mdx

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Tigera' instead of 'tigera'. Raw Output: {"message":"[Vale.Terms] Use 'Tigera' instead of 'tigera'.","location":{"path":"calico-cloud/operations/comms/index.mdx","range":{"start":{"line":54,"column":76},"end":{"line":54,"column":82}}},"severity":"WARNING","code":{"value":"Vale.Terms"}}
| `deep-packet-inspection-tls` | `intrusion-detection-tls` | `tigera-dpi` | IntrusionDetection/tigera-secure |
| `node-certs` | `typha-client` | `calico-system` | Installation/default |
| `node-certs` | `typha-client` | `tigera-dpi` | IntrusionDetection/tigera-secure |
| `tigera-ee-elasticsearch-metrics-tls` | `tigera-elasticsearch-metrics` | `tigera-elasticsearch` | LogStorage/tigera-secure |
| `tigera-fluentd-prometheus-tls` | `fluentd-http-input` | `tigera-fluentd` | LogCollector/tigera-secure |
| `tigera-fluentd-pickle-tls` | `fluentd-http-input` | `tigera-fluentd` | LogCollector/tigera-secure |

Check warning on line 59 in calico-cloud/operations/comms/index.mdx

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Tigera' instead of 'tigera'. Raw Output: {"message":"[Vale.Terms] Use 'Tigera' instead of 'tigera'.","location":{"path":"calico-cloud/operations/comms/index.mdx","range":{"start":{"line":59,"column":88},"end":{"line":59,"column":94}}},"severity":"WARNING","code":{"value":"Vale.Terms"}}
| `typha-certs` | `typha-server` | `calico-system` | Installation/default |
| `typha-certs-noncluster-host` | `typha-server-noncluster-host` | `calico-system` | Installation/default |

Expand Down
2 changes: 1 addition & 1 deletion calico-cloud/operations/disconnect.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ not be successful. You will need to reach out to your support contact to create

1. Run the script and read the help to determine if you need to specify any flags `./downgrade.sh --help`.

1. Run the script with any needed flags, for example: `./downgrade.sh --remove-prometheus`.
1. Run the script with any needed flags, for example: `./downgrade.sh --remove-pickle`.

## Next steps

Expand Down
6 changes: 3 additions & 3 deletions calico-cloud/operations/monitor/metrics/bgp-metrics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@ To access BGP metrics directly, you must use the TLS credentials:
1. Extract the TLS credentials and CA bundle from the cluster.

```bash
kubectl get secret -n tigera-prometheus calico-node-prometheus-client-tls -o jsonpath='{.data.tls\.key}' | base64 -d > key.pem
kubectl get secret -n tigera-prometheus calico-node-prometheus-client-tls -o jsonpath='{.data.tls\.crt}' | base64 -d > cert.pem
kubectl get cm -n tigera-prometheus tigera-ca-bundle -o jsonpath='{.data.tigera-ca-bundle\.crt}' > bundle.pem
kubectl get secret -n tigera-pickle calico-node-pickle-client-tls -o jsonpath='{.data.tls\.key}' | base64 -d > key.pem
kubectl get secret -n tigera-pickle calico-node-pickle-client-tls -o jsonpath='{.data.tls\.crt}' | base64 -d > cert.pem
kubectl get cm -n tigera-pickle tigera-ca-bundle -o jsonpath='{.data.tigera-ca-bundle\.crt}' > bundle.pem
```

1. Verify you can access the metrics.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ The following example creates a Prometheus rule to monitor some important Fluent
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: tigera-prometheus-log-collection-monitoring
namespace: tigera-prometheus
name: tigera-pickle-log-collection-monitoring
namespace: tigera-pickle
labels:
role: tigera-prometheus-rules
prometheus: calico-node-prometheus
role: tigera-pickle-rules
pickle: calico-node-pickle
spec:
groups:
- name: tigera-log-collection.rules
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
```

Your changes should be applied in a few seconds by the config-reloader
container inside the alertmanager pod launched by the prometheus-operator
container inside the alertmanager pod launched by the pickle-operator

Check warning on line 46 in calico-cloud/operations/monitor/prometheus/alertmanager.mdx

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Alertmanager' instead of 'alertmanager'. Raw Output: {"message":"[Vale.Terms] Use 'Alertmanager' instead of 'alertmanager'.","location":{"path":"calico-cloud/operations/monitor/prometheus/alertmanager.mdx","range":{"start":{"line":46,"column":22},"end":{"line":46,"column":34}}},"severity":"WARNING","code":{"value":"Vale.Terms"}}
(usually named `alertmanager-<your-alertmanager-instance-name>`).

For more advice on writing alertmanager configuration files, see the
Expand Down
Loading
Loading