mirror of https://github.com/hashicorp/consul
59 lines
2.7 KiB
Markdown
59 lines
2.7 KiB
Markdown
---
|
|
layout: docs
|
|
page_title: Service Mesh Observability - Overview
|
|
description: >-
|
|
To use Consul's observability features, configure sidecar proxies in the service mesh to collect and emit L7 metrics. Learn about configuring metrics destinations and a service's protocol and upstreams.
|
|
---
|
|
|
|
# Service Mesh Observability Overview
|
|
|
|
In order to take advantage of the service mesh's L7 observability features you will need
|
|
to:
|
|
|
|
- Deploy sidecar proxies that are capable of emitting metrics with each of your
|
|
services. We have first class support for Envoy.
|
|
- Define where your proxies should send metrics that they collect.
|
|
- Define the protocols for each of your services.
|
|
- Define the upstreams for each of your services.
|
|
|
|
If you are using Envoy as your sidecar proxy, you will need to [enable
|
|
gRPC](/consul/docs/agent/config/config-files#grpc_port) on your client agents. To define the
|
|
metrics destination and service protocol you may want to enable [configuration
|
|
entries](/consul/docs/agent/config/config-files#config_entries) and [centralized service
|
|
configuration](/consul/docs/agent/config/config-files#enable_central_service_config).
|
|
|
|
### Kubernetes
|
|
If you are using Kubernetes, the Helm chart can simplify much of the configuration needed to enable observability. See
|
|
our [Kubernetes observability docs](/consul/docs/k8s/connect/observability/metrics) for more information.
|
|
|
|
### Metrics destination
|
|
|
|
For Envoy the metrics destination can be configured in the proxy configuration
|
|
entry's `config` section.
|
|
|
|
```
|
|
kind = "proxy-defaults"
|
|
name = "global"
|
|
config {
|
|
"envoy_dogstatsd_url": "udp://127.0.0.1:9125"
|
|
}
|
|
```
|
|
|
|
Find other possible metrics syncs in the [Envoy documentation](/consul/docs/connect/proxies/envoy#bootstrap-configuration).
|
|
|
|
### Service protocol
|
|
|
|
You can specify the [`protocol`](/consul/docs/connect/config-entries/service-defaults#protocol)
|
|
for all service instances in the `service-defaults` configuration entry. You can also override the default protocol when defining and registering proxies in a service definition file. Refer to [Expose Paths Configuration Reference](/consul/docs/connect/proxies/proxy-config-reference#expose-paths-configuration-reference) for additional information.
|
|
|
|
By default, proxies only provide L4 metrics.
|
|
Defining the protocol allows proxies to handle requests at the L7
|
|
protocol and emit L7 metrics. It also allows proxies to make per-request
|
|
load balancing and routing decisions.
|
|
|
|
### Service upstreams
|
|
|
|
You can set the upstream for each service using the proxy's
|
|
[`upstreams`](/consul/docs/connect/proxies/proxy-config-reference#upstreams)
|
|
sidecar parameter, which can be defined in a service's [sidecar registration](/consul/docs/connect/proxies/deploy-sidecar-services).
|