{
  "configurations": [
    {
      "declarative_name": "java.common.messaging.capture_headers/development",
      "default": "",
      "description": "A comma-separated list of header names to capture as span attributes.",
      "name": "otel.instrumentation.messaging.experimental.capture-headers",
      "type": "list"
    },
    {
      "declarative_name": "java.common.messaging.receive_telemetry/development.enabled",
      "default": false,
      "description": "Enables experimental receive telemetry, which will cause consumers to start a new trace, with only a span link connecting it to the producer trace.",
      "name": "otel.instrumentation.messaging.experimental.receive-telemetry.enabled",
      "type": "boolean"
    },
    {
      "declarative_name": "java.pulsar.experimental_span_attributes/development",
      "default": false,
      "description": "Enables the experimental span attribute `messaging.pulsar.message.type` for producer spans.",
      "name": "otel.instrumentation.pulsar.experimental-span-attributes",
      "type": "boolean"
    }
  ],
  "description": "This instrumentation enables messaging spans for Apache Pulsar message producers and consumers.",
  "display_name": "Apache Pulsar Client",
  "has_javaagent": true,
  "javaagent_target_versions": [
    "org.apache.pulsar:pulsar-client:[2.8.0,)"
  ],
  "library_link": "https://pulsar.apache.org/",
  "name": "pulsar-2.8",
  "scope": {
    "name": "io.opentelemetry.pulsar-2.8"
  },
  "semantic_conventions": [
    "MESSAGING_SPANS"
  ],
  "source_path": "instrumentation/pulsar/pulsar-2.8",
  "telemetry": [
    {
      "metrics": [
        {
          "attributes": [
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "data_type": "HISTOGRAM",
          "description": "Measures the duration of publish operation.",
          "instrument": "histogram",
          "name": "messaging.publish.duration",
          "unit": "s"
        },
        {
          "attributes": [
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "data_type": "HISTOGRAM",
          "description": "Measures the duration of receive operation.",
          "instrument": "histogram",
          "name": "messaging.receive.duration",
          "unit": "s"
        },
        {
          "attributes": [
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "data_type": "LONG_SUM",
          "description": "Measures the number of received messages.",
          "instrument": "counter",
          "name": "messaging.receive.messages",
          "unit": "{message}"
        }
      ],
      "spans": [
        {
          "attributes": [
            {
              "name": "messaging.batch.message_count",
              "type": "LONG"
            },
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.destination.partition.id",
              "type": "STRING"
            },
            {
              "name": "messaging.message.body.size",
              "type": "LONG"
            },
            {
              "name": "messaging.message.id",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "span_kind": "CONSUMER"
        },
        {
          "attributes": [
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.destination.partition.id",
              "type": "STRING"
            },
            {
              "name": "messaging.message.body.size",
              "type": "LONG"
            },
            {
              "name": "messaging.message.id",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "span_kind": "PRODUCER"
        }
      ],
      "when": "otel.instrumentation.messaging.experimental.receive-telemetry.enabled=true"
    },
    {
      "metrics": [
        {
          "attributes": [
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "data_type": "HISTOGRAM",
          "description": "Measures the duration of publish operation.",
          "instrument": "histogram",
          "name": "messaging.publish.duration",
          "unit": "s"
        },
        {
          "attributes": [
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "data_type": "HISTOGRAM",
          "description": "Measures the duration of receive operation.",
          "instrument": "histogram",
          "name": "messaging.receive.duration",
          "unit": "s"
        },
        {
          "attributes": [
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "data_type": "LONG_SUM",
          "description": "Measures the number of received messages.",
          "instrument": "counter",
          "name": "messaging.receive.messages",
          "unit": "{message}"
        }
      ],
      "spans": [
        {
          "attributes": [
            {
              "name": "messaging.batch.message_count",
              "type": "LONG"
            },
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.destination.partition.id",
              "type": "STRING"
            },
            {
              "name": "messaging.message.body.size",
              "type": "LONG"
            },
            {
              "name": "messaging.message.id",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "span_kind": "CONSUMER"
        },
        {
          "attributes": [
            {
              "name": "messaging.destination.name",
              "type": "STRING"
            },
            {
              "name": "messaging.destination.partition.id",
              "type": "STRING"
            },
            {
              "name": "messaging.message.body.size",
              "type": "LONG"
            },
            {
              "name": "messaging.message.id",
              "type": "STRING"
            },
            {
              "name": "messaging.operation",
              "type": "STRING"
            },
            {
              "name": "messaging.pulsar.message.type",
              "type": "STRING"
            },
            {
              "name": "messaging.system",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "span_kind": "PRODUCER"
        }
      ],
      "when": "otel.instrumentation.pulsar.experimental-span-attributes=true"
    }
  ]
}