Skip to content

ccproxy.plugins.metrics.plugin

ccproxy.plugins.metrics.plugin

Metrics plugin implementation.

MetricsRuntime

MetricsRuntime(manifest)

Bases: SystemPluginRuntime

Runtime for metrics plugin.

Source code in ccproxy/plugins/metrics/plugin.py
def __init__(self, manifest: PluginManifest):
    """Initialize runtime."""
    super().__init__(manifest)
    self.config: MetricsConfig | None = None
    self.hook: MetricsHook | None = None
    self.pushgateway_task_name = "metrics_pushgateway"

MetricsFactory

MetricsFactory()

Bases: SystemPluginFactory

Factory for metrics plugin.

Source code in ccproxy/plugins/metrics/plugin.py
def __init__(self) -> None:
    """Initialize factory with manifest."""
    # Create manifest
    manifest = PluginManifest(
        name="metrics",
        version="0.1.0",
        description="Prometheus metrics collection and export plugin",
        is_provider=False,
        config_class=MetricsConfig,
    )

    # Initialize with manifest
    super().__init__(manifest)

create_runtime

create_runtime()

Create runtime instance.

Source code in ccproxy/plugins/metrics/plugin.py
def create_runtime(self) -> MetricsRuntime:
    """Create runtime instance."""
    return MetricsRuntime(self.manifest)

create_context

create_context(core_services)

Create context for the plugin.

Parameters:

Name Type Description Default
core_services Any

Core services from the application

required

Returns:

Type Description
PluginContext

Plugin context with required services

Source code in ccproxy/plugins/metrics/plugin.py
def create_context(self, core_services: Any) -> PluginContext:
    """Create context for the plugin.

    Args:
        core_services: Core services from the application

    Returns:
        Plugin context with required services
    """
    # Get base context
    context = super().create_context(core_services)

    # The metrics plugin doesn't need special context setup
    # It will get hook_registry and app from the base context

    return context