---
layout: docs
page_title: Service mesh observability technical specifications
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 technical specifications

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/reference/agent/configuration-file/general#grpc_port) on your client agents. To define the
metrics destination and service protocol you may want to enable [configuration
entries](/consul/docs/reference/agent/configuration-file/general#config_entries) and [centralized service
configuration](/consul/docs/reference/agent/configuration-file/general#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/observe/telemetry/k8s) 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/reference/config-entry/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/proxy/sidecar).
