groups:
  - id: metric.dns.lookup.duration
    type: metric
    metric_name: dns.lookup.duration
    annotations:
      code_generation:
        metric_value_type: double
    stability: development
    brief: Measures the time taken to perform a DNS lookup.
    instrument: histogram
    unit: "s"
    attributes:
      - ref: dns.question.name
        requirement_level: required
        examples: ["www.example.com", "dot.net"]
      - ref: error.type
        requirement_level:
          conditionally_required: if and only if an error has occurred.
        brief: Describes the error the DNS lookup failed with.
        note: >
          Instrumentations SHOULD use error code such as one of errors reported by
          `getaddrinfo`([Linux or other POSIX systems](https://man7.org/linux/man-pages/man3/getaddrinfo.3.html) /
          [Windows](https://learn.microsoft.com/windows/win32/api/ws2tcpip/nf-ws2tcpip-getaddrinfo)) or one reported by the
          runtime or client library.
          If error code is not available, the full name of exception type SHOULD be used.
        examples: ["host_not_found", "no_recovery", "java.net.UnknownHostException"]
