Skip to content

[k8s] Add k8s.service entity #3294

@jinja2

Description

@jinja2

Area(s)

area:k8s

What's missing?

I'd like to propose adding a k8s.service entity and associated metrics, in line with existing k8s entities. While pod-level health metrics exist, k8s services can aggregate endpoints across multiple deployments via label selectors. The proposed metrics provide a direct view of service-level availability without requiring users to discover and aggregate all matching pods.

Describe the solution you'd like

I would like to introduce the following attributes and metrics for a k8s.service entity.

New Metrics

Metric Type Description
k8s.service.endpoint.count Gauge Count of endpoints by condition (ready/serving/terminating), address type, and zone
k8s.service.load_balancer.ingress.count Gauge Count of ingress entries provisioned by load balancer controller

New Attributes

Metric attributes:

  • k8s.service.endpoint.condition (enum: ready, serving, terminating)
  • k8s.service.endpoint.address_type (enum: IPv4, IPv6, FQDN)
  • k8s.service.endpoint.zone (string)

Service entity:

  • k8s.service.traffic_distribution (string, opt-in)
  • k8s.service.publish_not_ready_addresses (bool, opt-in)

Listing out a few usecases for the proposed attributes and metrics -

  • Service endpoint health during deployments - Track how many endpoints are ready to receive new traffic, still serving in-flight requests while terminating, or warming up. This is useful for assessing rolling update progress.
  • LoadBalancer provisioning status - Confirm that external IPs or hostnames have been assigned by the load balancer controller, and detect when services lose their external endpoints.
  • Zone-aware endpoint distribution - With topology-aware routing, operators need to verify each availability zone has sufficient endpoints and alert on zone imbalances.

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Status

    Need triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions