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 %}
|
||||
|
||||
## 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