{
  "id": "observable-opentelemetry",
  "name": "observable-opentelemetry",
  "version": "9.7.4",
  "description": "OpenTelemetry integration for logs, metrics, and traces via OTLP",
  "category": "observable",
  "tags": [
    "opentelemetry",
    "otlp",
    "observability",
    "logs",
    "metrics",
    "traces"
  ],
  "documentation": [
    "./docs/plugin.md"
  ],
  "packages": {
    "nodejs": "@bsb/observable-opentelemetry"
  },
  "dependencies": [],
  "author": {
    "name": "BetterCorp (PTY) Ltd",
    "email": "ninja@bettercorp.dev",
    "url": "https://bettercorp.dev/"
  },
  "license": "(AGPL-3.0-only OR Commercial)",
  "image": "./observable-opentelemetry.png",
  "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": {}
  }
}