{
  "pluginId": "observable-opentelemetry",
  "pluginName": "observable-opentelemetry",
  "events": {},
  "version": "9.7.4",
  "configSchema": {
    "anyvaliVersion": "1.0",
    "schemaVersion": "1.1",
    "root": {
      "kind": "object",
      "properties": {
        "serviceName": {
          "kind": "string",
          "default": "bsb-service",
          "metadata": {
            "description": "Service name reported through OpenTelemetry resource attributes"
          }
        },
        "serviceVersion": {
          "kind": "optional",
          "inner": {
            "kind": "string"
          },
          "metadata": {
            "description": "Optional service version reported through OpenTelemetry resource attributes"
          }
        },
        "endpoint": {
          "kind": "string",
          "format": "url",
          "default": "http://localhost:4318",
          "metadata": {
            "description": "OTLP collector endpoint base URL"
          }
        },
        "export": {
          "kind": "object",
          "properties": {
            "protocol": {
              "kind": "enum",
              "values": [
                "http"
              ],
              "default": "http",
              "metadata": {
                "description": "OTLP HTTP transport protocol setting"
              }
            },
            "interval": {
              "kind": "int32",
              "min": 100,
              "default": 5000,
              "metadata": {
                "description": "Metric export interval in milliseconds"
              }
            },
            "maxBatchSize": {
              "kind": "int32",
              "min": 1,
              "default": 512,
              "metadata": {
                "description": "Maximum number of telemetry items sent in one export batch"
              }
            }
          },
          "required": [
            "protocol",
            "interval",
            "maxBatchSize"
          ],
          "unknownKeys": "strip",
          "metadata": {
            "description": "OpenTelemetry export settings"
          }
        },
        "enabled": {
          "kind": "object",
          "properties": {
            "traces": {
              "kind": "bool",
              "default": true,
              "metadata": {
                "description": "Whether trace export is enabled"
              }
            },
            "metrics": {
              "kind": "bool",
              "default": true,
              "metadata": {
                "description": "Whether metric export is enabled"
              }
            },
            "logs": {
              "kind": "bool",
              "default": true,
              "metadata": {
                "description": "Whether log export is enabled"
              }
            }
          },
          "required": [
            "traces",
            "metrics",
            "logs"
          ],
          "unknownKeys": "strip",
          "metadata": {
            "description": "Telemetry signal enablement"
          }
        },
        "resourceAttributes": {
          "kind": "record",
          "valueSchema": {
            "kind": "string"
          },
          "default": {},
          "metadata": {
            "description": "Additional OpenTelemetry resource attributes attached to exported telemetry"
          }
        },
        "samplingRate": {
          "kind": "number",
          "min": 0,
          "max": 1,
          "default": 1,
          "metadata": {
            "description": "Trace sampling rate from 0.0 to 1.0"
          }
        }
      },
      "required": [
        "serviceName",
        "endpoint",
        "export",
        "enabled",
        "resourceAttributes",
        "samplingRate"
      ],
      "unknownKeys": "strip",
      "metadata": {
        "description": "OpenTelemetry observable plugin configuration"
      }
    },
    "definitions": {},
    "extensions": {}
  },
  "pluginType": "observable",
  "capabilities": {
    "logging": {
      "debug": true,
      "info": true,
      "warn": true,
      "error": true
    },
    "metrics": {
      "createCounter": true,
      "createGauge": true,
      "createHistogram": true,
      "incrementCounter": true,
      "setGauge": true,
      "observeHistogram": true
    },
    "tracing": {
      "spanStart": true,
      "spanEnd": true,
      "spanError": true
    }
  }
}