127 lines
3.0 KiB
Markdown
127 lines
3.0 KiB
Markdown
# Telemetry for backend
|
|
By default, the telemetry is disabled by setting `selector` to `none`, like this
|
|
|
|
```yaml
|
|
telemetry:
|
|
selector: ${SW_TELEMETRY:none}
|
|
none:
|
|
prometheus:
|
|
host: ${SW_TELEMETRY_PROMETHEUS_HOST:0.0.0.0}
|
|
port: ${SW_TELEMETRY_PROMETHEUS_PORT:1234}
|
|
sslEnabled: ${SW_TELEMETRY_PROMETHEUS_SSL_ENABLED:false}
|
|
sslKeyPath: ${SW_TELEMETRY_PROMETHEUS_SSL_KEY_PATH:""}
|
|
sslCertChainPath: ${SW_TELEMETRY_PROMETHEUS_SSL_CERT_CHAIN_PATH:""}
|
|
```
|
|
|
|
but you can set one of `prometheus` to enable them, for more information, refer to the details below.
|
|
|
|
## Prometheus
|
|
Prometheus is supported as telemetry implementor.
|
|
By using this, prometheus collects metrics from SkyWalking backend.
|
|
|
|
Set `prometheus` to provider. The endpoint open at `http://0.0.0.0:1234/` and `http://0.0.0.0:1234/metrics`.
|
|
```yaml
|
|
telemetry:
|
|
selector: ${SW_TELEMETRY:prometheus}
|
|
prometheus:
|
|
```
|
|
|
|
Set host and port if needed.
|
|
```yaml
|
|
telemetry:
|
|
selector: ${SW_TELEMETRY:prometheus}
|
|
prometheus:
|
|
host: 127.0.0.1
|
|
port: 1543
|
|
```
|
|
|
|
Set SSL relevant settings to expose a secure endpoint. Notice private key file and cert chain file could be uploaded once
|
|
changes are applied to them.
|
|
```yaml
|
|
telemetry:
|
|
selector: ${SW_TELEMETRY:prometheus}
|
|
prometheus:
|
|
host: 127.0.0.1
|
|
port: 1543
|
|
sslEnabled: true
|
|
sslKeyPath: /etc/ssl/key.pem
|
|
sslCertChainPath: /etc/ssl/cert-chain.pem
|
|
```
|
|
|
|
### Grafana Visualization
|
|
Provide the grafana dashboard settings. Check [SkyWalking Telemetry dashboard](grafana.json) config.
|
|
|
|
|
|
## Self Observability
|
|
|
|
SkyWalking supports to collect telemetry data into OAP backend directly. Users could check them out through UI or
|
|
GraphQL API then.
|
|
|
|
Adding following configuration to enable self-observability related modules.
|
|
|
|
1. Setting up prometheus telemetry.
|
|
```yaml
|
|
telemetry:
|
|
selector: ${SW_TELEMETRY:prometheus}
|
|
prometheus:
|
|
host: 127.0.0.1
|
|
port: 1543
|
|
```
|
|
|
|
2. Setting up prometheus fetcher
|
|
|
|
```yaml
|
|
prometheus-fetcher:
|
|
selector: ${SW_PROMETHEUS_FETCHER:default}
|
|
default:
|
|
active: ${SW_PROMETHEUS_FETCHER_ACTIVE:true}
|
|
```
|
|
|
|
3. Make sure `config/fetcher-prom-rules/self.yaml` exists.
|
|
|
|
Once you deploy an oap-server cluster, the target host should be replaced with a dedicated IP or hostname. For instances,
|
|
there are three oap server in your cluster, their host is `service1`, `service2` and `service3` respectively. You should
|
|
update each `self.yaml` to twist target host.
|
|
|
|
service1:
|
|
```yaml
|
|
fetcherInterval: PT15S
|
|
fetcherTimeout: PT10S
|
|
metricsPath: /metrics
|
|
staticConfig:
|
|
# targets will be labeled as "instance"
|
|
targets:
|
|
- service1:1234
|
|
labels:
|
|
service: oap-server
|
|
...
|
|
```
|
|
|
|
service2:
|
|
```yaml
|
|
fetcherInterval: PT15S
|
|
fetcherTimeout: PT10S
|
|
metricsPath: /metrics
|
|
staticConfig:
|
|
# targets will be labeled as "instance"
|
|
targets:
|
|
- service2:1234
|
|
labels:
|
|
service: oap-server
|
|
...
|
|
```
|
|
|
|
service3:
|
|
```yaml
|
|
fetcherInterval: PT15S
|
|
fetcherTimeout: PT10S
|
|
metricsPath: /metrics
|
|
staticConfig:
|
|
# targets will be labeled as "instance"
|
|
targets:
|
|
- service3:1234
|
|
labels:
|
|
service: oap-server
|
|
...
|
|
```
|