This is documentation for the next version of Grafana Beyla documentation. For the latest stable release, go to the latest version.
Configure Beyla service host and peer name resolution
Since Beyla instruments at the protocol level, it doesn’t have access to programming language/framework information about host and peer names. Instead, Beyla has access to the IP addresses used for the communication between the services which are monitored. Therefore Beyla sources this information from metadata services, such as the Kubernetes API, or from information found in protocol headers, for example HTTP’s Host header value.
Name resolution configuration
YAML section: name_resolver
The possible values for the name resolver sources are:
k8s. Use Kubernetes API metadata for reverse IP address lookup.dns. Use the host DNS for reverse IP address lookup. This option can cause flood of DNS requests in certain situations and should be used only on services that are not exposed to the Internet.rdns. Beyla tracks DNS requests for instrumentation purposes. This option uses that information to build internal cache of DNS resolved names.ecs. Resolve ECS task IP addresses through the ECS inventory. Requires detected ECS metadata and AWS credentials withecs:ListTasksandecs:DescribeTaskspermissions.route53. Resolve IP addresses from configured Route53 hosted zones. Requires detected EC2 metadata androute53:ListResourceRecordSetspermission for those zones.gce. Resolve Compute Engine VM addresses to managed instance group names. Requires detected GCE metadata and read access to the Compute Engine inventory.azure. Resolve Azure VM addresses to scale-set names. Requires detected Azure VM metadata outside Kubernetes and read access to VM, scale-set, and network-interface inventories. This source is not activated when Beyla detects Kubernetes.
Setting sources replaces the default ["k8s", "rdns"] list. Include those entries explicitly if you want to keep them alongside cloud sources. ECS names take precedence over Route53 names for the same IP.
Cloud metadata configuration
YAML section: cloud_metadata
For an ECS deployment:
name_resolver:
sources: ["k8s", "rdns", "ecs"]
cloud_metadata:
cluster_name: production
region: eu-central-1
refresh_interval: 30sThe cluster and region overrides supply missing inventory scope or replace detected values. Cloud sources also require the corresponding cloud environment to be detected; setting an override alone does not activate a source.
For Route53:
name_resolver:
sources: ["k8s", "rdns", "route53"]
cloud_metadata:
region: eu-central-1
route53:
hosted_zone_ids: ["Z0123456789EXAMPLE"]
refresh_interval: 5mBeyla reads A and AAAA records containing IP addresses from the specified zones. Names use lowercase and are exported without the trailing dot. Alias records, CNAME records, and wildcard names are skipped. Choose zones that describe the services you want Beyla to resolve.
Route53 polling uses its own refresh interval, with jitter to spread requests and backoff when AWS throttles the client.
Google Cloud and Azure discovery scopes
Beyla exposes provider scope settings under name_resolver. Empty values use the scope detected from cloud metadata.
For example, resolve GCE managed instance groups:
name_resolver:
sources: ["k8s", "rdns", "gce"]
gce:
project_id: production-project
zone: europe-west3-aThe Google client uses application default credentials. The Compute Viewer role provides read access to the inventory. Scope discovery covers managed instance groups in the configured zone.
For Azure scale sets:
name_resolver:
sources: ["k8s", "rdns", "azure"]
azure:
subscription_id: "00000000-0000-0000-0000-000000000000"
resource_group: productionThe Azure client uses the default Azure credential chain. The Reader role at the relevant scope provides the required read access. Both Uniform and Flexible scale sets are supported. The cloud inventory refresh interval is controlled by cloud_metadata.refresh_interval.