Skip to main content
Glama
enkryptai

Enkrypt AI Secure MCP Gateway

Official
by enkryptai
base.py2.68 kB
"""Telemetry plugin base interfaces.""" from __future__ import annotations from abc import ABC, abstractmethod from dataclasses import dataclass, field from datetime import datetime from enum import Enum from typing import Any, Dict, List, Union class TelemetryLevel(Enum): """Telemetry logging levels""" DEBUG = "debug" INFO = "info" WARNING = "warning" ERROR = "error" CRITICAL = "critical" @dataclass class TelemetryResult: """Standardized result from telemetry operations""" success: bool provider_name: str message: str = "" data: dict[str, Any] = field(default_factory=dict) error: str | None = None timestamp: datetime = field(default_factory=datetime.now) class TelemetryProvider(ABC): """Abstract base class for all telemetry providers""" @property @abstractmethod def name(self) -> str: """Get the provider name""" pass @property @abstractmethod def version(self) -> str: """Get the provider version""" pass @abstractmethod def initialize(self, config: dict[str, Any]) -> TelemetryResult: """Initialize the telemetry provider""" pass @abstractmethod def create_logger(self, name: str) -> Any: """Create a logger instance""" pass @abstractmethod def create_tracer(self, name: str) -> Any: """Create a tracer instance""" pass # Optional methods with default implementations def create_meter(self, name: str) -> Any: """Create a meter instance (optional)""" return None def shutdown(self) -> TelemetryResult: """Shutdown the provider (optional)""" return TelemetryResult( success=True, provider_name=self.name, message="Shutdown successful" ) class TelemetryRegistry: """Registry for managing telemetry providers""" def __init__(self): self._provider: TelemetryProvider | None = None def register(self, provider: TelemetryProvider) -> None: """Register a telemetry provider""" self._provider = provider def unregister(self, name: str = None) -> None: """Unregister the telemetry provider""" self._provider = None def get(self, name: str | None = None) -> TelemetryProvider | None: """Get the registered provider""" return self._provider def list_providers(self) -> list[str]: """Get list of registered provider names""" if self._provider: return [self._provider.name] return [] __all__ = [ "TelemetryProvider", "TelemetryResult", "TelemetryRegistry", "TelemetryLevel", ]

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/enkryptai/secure-mcp-gateway'

If you have feedback or need assistance with the MCP directory API, please join our Discord server