Class PrometheusMetricsExporter

java.lang.Object
cloud.opencode.base.cache.metrics.PrometheusMetricsExporter

public final class PrometheusMetricsExporter extends Object
Prometheus Metrics Exporter - Export cache metrics in Prometheus format Prometheus 指标导出器 - 以 Prometheus 格式导出缓存指标

Exports cache metrics in Prometheus text-based exposition format, suitable for scraping by Prometheus server.

以 Prometheus 文本格式导出缓存指标,适合 Prometheus 服务器抓取。

Exported Metrics | 导出的指标:

  • cache_hits_total - Total cache hits | 总缓存命中数
  • cache_misses_total - Total cache misses | 总缓存未命中数
  • cache_requests_total - Total requests | 总请求数
  • cache_evictions_total - Total evictions | 总淘汰数
  • cache_size - Current cache size | 当前缓存大小
  • cache_hit_ratio - Cache hit ratio | 缓存命中率
  • cache_load_duration_seconds - Load latency histogram | 加载延迟直方图
  • cache_get_duration_seconds - Get latency percentiles | 获取延迟百分位数

Usage Examples | 使用示例:

// Create exporter - 创建导出器
PrometheusMetricsExporter exporter = PrometheusMetricsExporter.create();

// Register caches - 注册缓存
exporter.register("users", userCache);
exporter.register("products", productCache);

// Or auto-register all managed caches - 或自动注册所有托管缓存
exporter.registerAll(CacheManager.getInstance());

// Export metrics - 导出指标
String metrics = exporter.export();

// Use in HTTP endpoint - 在 HTTP 端点中使用
// GET /metrics -> returns Prometheus format

Features | 主要功能:

  • Prometheus text exposition format - Prometheus 文本导出格式
  • Auto-register all managed caches - 自动注册所有托管缓存
  • Latency histogram export - 延迟直方图导出
  • Custom label support - 自定义标签支持

Security | 安全性:

  • Thread-safe: Yes - 线程安全: 是
  • Null-safe: Yes - 空值安全: 是
Since:
JDK 25, opencode-base-cache V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • create

      public static PrometheusMetricsExporter create()
      Create exporter with default settings 使用默认设置创建导出器
      Returns:
      exporter | 导出器
    • create

      public static PrometheusMetricsExporter create(String namespace)
      Create exporter with namespace 使用命名空间创建导出器
      Parameters:
      namespace - metric namespace prefix | 指标命名空间前缀
      Returns:
      exporter | 导出器
    • builder

      public static PrometheusMetricsExporter.Builder builder()
      Create exporter builder 创建导出器构建器
      Returns:
      builder | 构建器
    • register

      public <K,V> PrometheusMetricsExporter register(String name, Cache<K,V> cache)
      Register a cache for metrics export 注册缓存以导出指标
      Type Parameters:
      K - key type | 键类型
      V - value type | 值类型
      Parameters:
      name - cache name | 缓存名称
      cache - the cache | 缓存
      Returns:
      this exporter | 此导出器
    • registerAll

      public PrometheusMetricsExporter registerAll(CacheManager manager)
      Register all caches from CacheManager 从 CacheManager 注册所有缓存
      Parameters:
      manager - cache manager | 缓存管理器
      Returns:
      this exporter | 此导出器
    • unregister

      public PrometheusMetricsExporter unregister(String name)
      Unregister a cache 取消注册缓存
      Parameters:
      name - cache name | 缓存名称
      Returns:
      this exporter | 此导出器
    • export

      public String export()
      Export all metrics in Prometheus format 以 Prometheus 格式导出所有指标
      Returns:
      Prometheus format metrics | Prometheus 格式指标
    • export

      public void export(Writer writer) throws IOException
      Export all metrics to writer 将所有指标导出到写入器
      Parameters:
      writer - output writer | 输出写入器
      Throws:
      IOException - on write error | 写入错误时抛出