mirror of https://github.com/istio/istio.io.git
Add initial FAQ for telemetry (#611)
This commit is contained in:
parent
0173744bd4
commit
a8c82ab313
|
|
@ -9,3 +9,178 @@ type: markdown
|
||||||
---
|
---
|
||||||
{% include home.html %}
|
{% include home.html %}
|
||||||
|
|
||||||
|
## How do I see all of the configuration for Mixer ?
|
||||||
|
|
||||||
|
Configuration for *instances*, *handlers*, and *rules* is stored as Kubernetes
|
||||||
|
[Custom
|
||||||
|
Resources](https://kubernetes.io/docs/concepts/api-extension/custom-resources/).
|
||||||
|
Configuration may be accessed by using `kubectl` to query the Kubernetes [API
|
||||||
|
server](https://kubernetes.io/docs/admin/kube-apiserver/) for the resources.
|
||||||
|
|
||||||
|
### Rules
|
||||||
|
|
||||||
|
To see the list of all rules, execute the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl get rules --all-namespaces
|
||||||
|
```
|
||||||
|
|
||||||
|
Output will be similar to:
|
||||||
|
|
||||||
|
```
|
||||||
|
NAMESPACE NAME KIND
|
||||||
|
default mongoprom rule.v1alpha2.config.istio.io
|
||||||
|
istio-system promhttp rule.v1alpha2.config.istio.io
|
||||||
|
istio-system promtcp rule.v1alpha2.config.istio.io
|
||||||
|
istio-system stdio rule.v1alpha2.config.istio.io
|
||||||
|
```
|
||||||
|
|
||||||
|
To see an individual rule configuration, execute the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl -n <namespace> get rules <name> -o yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
### Handlers
|
||||||
|
|
||||||
|
Handlers are defined based on Kubernetes [Custom Resource
|
||||||
|
Definitions](https://kubernetes.io/docs/concepts/api-extension/custom-resources/#customresourcedefinitions)
|
||||||
|
for adapters.
|
||||||
|
|
||||||
|
First, identify the list of adapter kinds:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl get crd -listio=mixer-adapter
|
||||||
|
```
|
||||||
|
|
||||||
|
The output will be similar to:
|
||||||
|
|
||||||
|
```
|
||||||
|
NAME KIND
|
||||||
|
deniers.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
listcheckers.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
memquotas.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
noops.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
prometheuses.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
stackdrivers.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
statsds.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
stdios.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
svcctrls.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, for each adapter kind in that list, issue the following command:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl get <adapter kind name> --all-namespaces
|
||||||
|
```
|
||||||
|
|
||||||
|
Output for `stdios` will be similar to:
|
||||||
|
|
||||||
|
```
|
||||||
|
NAMESPACE NAME KIND
|
||||||
|
istio-system handler stdio.v1alpha2.config.istio.io
|
||||||
|
```
|
||||||
|
|
||||||
|
To see an individual handler configuration, execute the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl -n <namespace> get <adapter kind name> <name> -o yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Instances
|
||||||
|
|
||||||
|
Instances are defined according to Kubernetes [Custom Resource
|
||||||
|
Definitions](https://kubernetes.io/docs/concepts/api-extension/custom-resources/#customresourcedefinitions)
|
||||||
|
for instances.
|
||||||
|
|
||||||
|
First, identify the list of instance kinds:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl get crd -listio=mixer-instance
|
||||||
|
```
|
||||||
|
|
||||||
|
The output will be similar to:
|
||||||
|
|
||||||
|
```
|
||||||
|
NAME KIND
|
||||||
|
checknothings.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
listentries.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
logentries.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
metrics.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
quotas.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
reportnothings.config.istio.io CustomResourceDefinition.v1beta1.apiextensions.k8s.io
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, for each instance kind in that list, issue the following command:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl get <instance kind name> --all-namespaces
|
||||||
|
```
|
||||||
|
|
||||||
|
Output for `metrics` will be similar to:
|
||||||
|
|
||||||
|
```
|
||||||
|
NAMESPACE NAME KIND
|
||||||
|
default mongoreceivedbytes metric.v1alpha2.config.istio.io
|
||||||
|
default mongosentbytes metric.v1alpha2.config.istio.io
|
||||||
|
istio-system requestcount metric.v1alpha2.config.istio.io
|
||||||
|
istio-system requestduration metric.v1alpha2.config.istio.io
|
||||||
|
istio-system requestsize metric.v1alpha2.config.istio.io
|
||||||
|
istio-system responsesize metric.v1alpha2.config.istio.io
|
||||||
|
istio-system tcpbytereceived metric.v1alpha2.config.istio.io
|
||||||
|
istio-system tcpbytesent metric.v1alpha2.config.istio.io
|
||||||
|
```
|
||||||
|
|
||||||
|
To see an individual instance configuration, execute the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl -n <namespace> get <instance kind name> <name> -o yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## What is the full set of attribute expressions supported by Mixer ?
|
||||||
|
|
||||||
|
Please see the [Expression Language
|
||||||
|
Reference]({{home}}/docs/reference/config/mixer/expression-language.html) for
|
||||||
|
the full set of supported attribute expressions.
|
||||||
|
|
||||||
|
## Does Mixer provide any self-monitoring ?
|
||||||
|
|
||||||
|
Mixer provides self-monitoring in the form of debug endpoints, Prometheus
|
||||||
|
metrics, access and application logs, and generated trace data for all requests.
|
||||||
|
|
||||||
|
### Mixer monitoring
|
||||||
|
|
||||||
|
Mixer exposes an monitoring endpoint(default port: `9093`). There are a few
|
||||||
|
useful paths that can be used to investigate Mixer performance and audit
|
||||||
|
function:
|
||||||
|
|
||||||
|
- `/metrics` provides Prometheus metrics on the Mixer process as well as gRPC
|
||||||
|
metrics related to API calls and metrics on adapter dispatch.
|
||||||
|
- `/debug/pprof` provides an endpoint for profiling data in [pprof
|
||||||
|
format](https://golang.org/pkg/net/http/pprof/).
|
||||||
|
- `/debug/vars` provides an endpoint exposing server metrics in JSON format.
|
||||||
|
|
||||||
|
### Mixer logs
|
||||||
|
|
||||||
|
Mixer logs can be accessed via a `kubectl logs` command, as follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
kubectl -n istio-system logs $(kubectl -n istio-system get pods -listio=mixer -o jsonpath='{.items[0].metadata.name}') mixer
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mixer traces
|
||||||
|
|
||||||
|
Mixer trace generation is controlled by the command-line flag `traceOutput`. If
|
||||||
|
the flag value is set to `STDOUT` or `STDERR` trace data will be written
|
||||||
|
directly to those locations. If a URL is provided, Mixer will post
|
||||||
|
Zipkin-formatted data to that endpoint (example:
|
||||||
|
`http://zipkin:9411/api/v1/spans`).
|
||||||
|
|
||||||
|
In the 0.2 release, Mixer only supports Zipkin tracing.
|
||||||
|
|
||||||
|
|
||||||
|
## How can I write a custom adapter for Mixer ?
|
||||||
|
|
||||||
|
To implement a new adapter for Mixer, please refer to the [Adapter Developer's
|
||||||
|
Guide](https://github.com/istio/mixer/blob/master/doc/dev/adapters.md).
|
||||||
Loading…
Reference in New Issue