mirror of
https://github.com/arangodb/kube-arangodb.git
synced 2024-12-14 11:57:37 +00:00
[Documentation] Update README and add Exporter documentation (#731)
This commit is contained in:
parent
44dea2cf09
commit
784c7988f8
3 changed files with 120 additions and 4 deletions
|
@ -2,6 +2,7 @@
|
|||
|
||||
## [master](https://github.com/arangodb/kube-arangodb/tree/master) (N/A)
|
||||
- Add IP, DNS, ShortDNS, HeadlessService (Default) communication methods
|
||||
- Migrate ArangoExporter into Operator code
|
||||
|
||||
## [1.1.8](https://github.com/arangodb/kube-arangodb/tree/1.1.8) (2021-04-21)
|
||||
- Prevent Single member recreation
|
||||
|
|
30
README.md
30
README.md
|
@ -38,17 +38,30 @@ covers individual newer features separately.
|
|||
|
||||
| Platform | Kubernetes Version | ArangoDB Version | State | Remarks | Provider Remarks |
|
||||
|---------------------|--------------------|------------------|------------|-----------------------|------------------------------------|
|
||||
| Google GKE | 1.16 | >= 3.5.0 | Production | Don't use micro nodes | |
|
||||
| Google GKE | 1.17 | >= 3.5.0 | Production | Don't use micro nodes | |
|
||||
| Azure AKS | 1.16 | >= 3.5.0 | Production | | |
|
||||
| Azure AKS | 1.17 | >= 3.5.0 | Production | | |
|
||||
| Google GKE | 1.18 | >= 3.5.0 | Production | Don't use micro nodes | |
|
||||
| Google GKE | 1.19 | >= 3.5.0 | Production | Don't use micro nodes | |
|
||||
| Google GKE | 1.20 | >= 3.5.0 | Production | Don't use micro nodes | |
|
||||
| Azure AKS | 1.18 | >= 3.5.0 | Production | | |
|
||||
| Azure AKS | 1.19 | >= 3.5.0 | Production | | |
|
||||
| Azure AKS | 1.20 | >= 3.5.0 | Production | | |
|
||||
| Amazon EKS | 1.16 | >= 3.5.0 | Production | | [Amazon EKS](./docs/providers/eks) |
|
||||
| Amazon EKS | 1.17 | >= 3.5.0 | Production | | [Amazon EKS](./docs/providers/eks) |
|
||||
| IBM Cloud | 1.16 | >= 3.5.0 | Production | | |
|
||||
| Amazon EKS | 1.18 | >= 3.5.0 | Production | | [Amazon EKS](./docs/providers/eks) |
|
||||
| Amazon EKS | 1.19 | >= 3.5.0 | Production | | [Amazon EKS](./docs/providers/eks) |
|
||||
| Amazon EKS | 1.20 | >= 3.5.0 | Production | | [Amazon EKS](./docs/providers/eks) |
|
||||
| IBM Cloud | 1.17 | >= 3.5.0 | Deprecated | | |
|
||||
| IBM Cloud | 1.18 | >= 3.5.0 | Production | | |
|
||||
| IBM Cloud | 1.19 | >= 3.5.0 | Production | | |
|
||||
| IBM Cloud | 1.20 | >= 3.5.0 | Production | | |
|
||||
| OpenShift | 3.11 | >= 3.5.0 | Production | | |
|
||||
| OpenShift | 4.2 | >= 3.5.0 | Production | | |
|
||||
| BareMetal (kubeadm) | 1.16 | >= 3.5.0 | Production | | |
|
||||
| BareMetal (kubeadm) | 1.17 | >= 3.5.0 | Production | | |
|
||||
| BareMetal (kubeadm) | 1.18 | >= 3.5.0 | Production | | |
|
||||
| BareMetal (kubeadm) | 1.19 | >= 3.5.0 | Production | | |
|
||||
| BareMetal (kubeadm) | 1.20 | >= 3.5.0 | Production | | |
|
||||
| BareMetal (kubeadm) | 1.21 | >= 3.5.0 | Production | | |
|
||||
| Minikube | 1.14+ | >= 3.5.0 | Devel Only | | |
|
||||
| Other | 1.14+ | >= 3.5.0 | Devel Only | | |
|
||||
|
||||
|
@ -78,6 +91,7 @@ Feature-wise production readiness table:
|
|||
| Encryption Key Rotation Support | 1.1.0 | > 3.7.0 | Enterprise | Production | True | --deployment.feature.encryption-rotation | N/A |
|
||||
| Version Check | 1.1.4 | >= 3.5.0 | Community, Enterprise | Alpha | False | --deployment.feature.upgrade-version-check | N/A |
|
||||
| Operator Maintenance Management Support | 1.0.7 | >= 3.5.0 | Community, Enterprise | Alpha | False | --deployment.feature.maintenance | N/A |
|
||||
| Operator Internal Metrics Exporter | 1.1.9 | >= 3.6.0 | Community, Enterprise | Alpha | False | --deployment.feature.metrics-exporter | N/A |
|
||||
|
||||
## Release notes for 0.3.16
|
||||
|
||||
|
@ -187,3 +201,11 @@ kubectl apply -f manifests/arango-storage-dev.yaml
|
|||
# To use `ArangoDeploymentReplication`, also run
|
||||
kubectl apply -f manifests/arango-deployment-replication-dev.yaml
|
||||
```
|
||||
|
||||
## ArangoExporter
|
||||
|
||||
[ArangoExporter](https://github.com/arangodb-helper/arangodb-exporter) project has been merged with ArangoOperator.
|
||||
Starting from ArangoDB 3.6 Servers expose metrics endpoint with prometheus compatible format. From this point Exporter
|
||||
is used only for TLS and/or Authentication termination to be compatible with all Prometheus installations.
|
||||
|
||||
ArangoExporter documentation can be found [here](./docs/design/exporter.md)
|
93
docs/design/exporter.md
Normal file
93
docs/design/exporter.md
Normal file
|
@ -0,0 +1,93 @@
|
|||
# ArangoDB Exporter for Prometheus
|
||||
|
||||
This exporter exposes the statistics provided by a specific ArangoDB instance
|
||||
in a format compatible with prometheus.
|
||||
|
||||
## Usage
|
||||
|
||||
To use the ArangoDB Exporter, run the following:
|
||||
|
||||
```bash
|
||||
arangodb_operator exporter \
|
||||
--arangodb.endpoint=http://<your-database-host>:8529 \
|
||||
--arangodb.jwtsecret=<your-jwt-secret> \
|
||||
--ssl.keyfile=<your-optional-ssl-keyfile>
|
||||
```
|
||||
|
||||
This results in an ArangoDB Exporter exposing all statistics of
|
||||
the ArangoDB server (running at `http://<your-database-host>:8529`)
|
||||
at `http://<your-host-ip>:9101/metrics`.
|
||||
|
||||
## Exporter mode
|
||||
|
||||
Expose ArangoDB metrics for ArangoDB >= 3.6.0
|
||||
|
||||
In default mode metrics provided by ArangoDB `_admin/metrics` (<=3.7) or `_admin/metrics/v2` (3.8+) are exposed on Exporter port.
|
||||
|
||||
## Configuring Prometheus
|
||||
|
||||
There are several ways to configure Prometheus to fetch metrics from the ArangoDB Exporter.
|
||||
|
||||
Below you're find a sample Prometheus configuration file that can be used to fetch
|
||||
metrics from an ArangoDB exporter listening on localhost port 9101 (without TLS).
|
||||
|
||||
```yaml
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
scrape_configs:
|
||||
- job_name: arangodb
|
||||
static_configs:
|
||||
- targets: ['localhost:9101']
|
||||
```
|
||||
|
||||
For more info on configuring Prometheus go to [its configuration documentation](https://prometheus.io/docs/prometheus/latest/configuration/configuration).
|
||||
|
||||
If you're using the [Prometheus Operator](https://github.com/coreos/prometheus-operator)
|
||||
in Kubernetes, you need to create an additional `Service` and a `ServiceMonitor` resource
|
||||
like this:
|
||||
|
||||
```yaml
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: arangodb-exporters-service
|
||||
labels:
|
||||
app: arangodb-exporter
|
||||
spec:
|
||||
selector:
|
||||
app: arangodb-exporter
|
||||
ports:
|
||||
- name: metrics
|
||||
port: 9101
|
||||
|
||||
---
|
||||
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: arangodb-exporter
|
||||
namespace: monitoring
|
||||
labels:
|
||||
team: frontend
|
||||
prometheus: kube-prometheus
|
||||
spec:
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- default
|
||||
selector:
|
||||
matchLabels:
|
||||
app: arangodb-exporter
|
||||
endpoints:
|
||||
- port: metrics
|
||||
scheme: https
|
||||
tlsConfig:
|
||||
insecureSkipVerify: true
|
||||
```
|
||||
|
||||
Note 1: that the typical deployment on the Prometheus operator is done in
|
||||
a namespace called `monitoring`. Make sure to match the `namespace`
|
||||
of the `ServiceMonitor` to match that.
|
||||
|
||||
Note 2: that the `Prometheus` custom resource has a field called `serviceMonitorSelector`.
|
||||
Make sure that the `matchLabels` selector in there matches the labels of
|
||||
your `ServiceMonitor`.
|
Loading…
Reference in a new issue