2026/2/19 21:55:37
网站建设
项目流程
永嘉县住房建设局网站,网站建设视频教程免费下载,互联网营销师报名入口官网,建立自己的网站用花钱吗在WinampToSpotify项目中添加了.NET Aspire服务默认值和.NET Aspire AppHost后#xff0c;添加了以下代码以在本地使用Docker Desktop运行Prometheus和Grafana。运行以下代码需要启动Docker Desktop。
// Prometheus容器#xff0c;用于抓取应用指标
var prometheus builder…在WinampToSpotify项目中添加了.NET Aspire服务默认值和.NET Aspire AppHost后添加了以下代码以在本地使用Docker Desktop运行Prometheus和Grafana。运行以下代码需要启动Docker Desktop。// Prometheus容器用于抓取应用指标varprometheusbuilder.AddContainer(prometheus,prom/prometheus).WithBindMount(./prometheus/prometheus.yml,/etc/prometheus/prometheus.yml).WithEndpoint(port:9090,targetPort:9090).WithArgs(--config.file/etc/prometheus/prometheus.yml,--web.enable-otlp-receiver);// 使用Prometheus作为数据源的Grafana容器vargrafanabuilder.AddContainer(grafana,grafana/grafana).WithVolume(grafana-storage,/var/lib/grafana)// 持久化仪表板、用户、数据库.WithVolume(grafana-provisioning,/etc/grafana/provisioning,isReadOnly:true)// 可选预配置YAML/JSON.WithEndpoint(port:3000,targetPort:3000);prometheus.yml是默认的Prometheus配置global:scrape_interval:15sevaluation_interval:15sscrape_configs:-job_name:otel-collectorstatic_configs:-targets:[localhost:9090]# 如果使用Docker请调整例如 host.docker.internal:9464metrics_path:/metrics创建了OpenTelemetryLib项目并创建了一个ServiceCollection扩展方法来配置OTEL导出端点。安装了以下NuGet包OpenTelemetry、OpenTelemetry.Exporter.Console、OpenTelemetry.Exporter.OpenTelemetryProtocol、OpenTelemetry.Exporter.Prometheus.HttpListener、OpenTelemetry.Instrumentation.Process。varmeterProviderBuilderSdk.CreateMeterProviderBuilder().SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(winamptospotifyweb,serviceVersion:1.0.0)).AddMeter(WinamptoSpotifyMetricsManager.MeterName).AddOtlpExporter((options,metricReader){options.ProtocolOtlpExportProtocol.Grpc;// 4317作为gRPC端口。options.ExportProcessorTypeExportProcessorType.Batch;options.Endpointendpoint;metricReader.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds60000;// 1分钟metricReader.PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds30000;// 半分钟})//Aspire Dashboard导出.AddOtlpExporter((exporterOptions,metricReaderOptions){exporterOptions.EndpointnewUri(http://localhost:9090/api/v1/otlp/v1/metrics);exporterOptions.ProtocolOtlpExportProtocol.HttpProtobuf;metricReaderOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds1000;});//Prometheus导出创建了Spotify指标类来注册Spotify服务相关的指标。开始跟踪每个文件夹添加的总曲目数。publicclassSpotifyServiceMetrics:IWinampToSpotifyWebMetrics{privatereadonlyISpotifyService_spotifyService;publicSpotifyServiceMetrics(ISpotifyServicespotifyService){_spotifyServicespotifyService;}publicvoidRegisterMetrics(Metermeter){vartracksAddedMetricmeter.CreateObservableGauge(winamptospotifyweb.spotifyservice.totaltracksadded,()_spotifyService.GetPlaylistSummary().TotalTracksAdded,unitless,Number of tracks added);}}WinamptoSpotifyMetricsManager类有助于注册指标该类使用IMeterFactory进行注册。publicWinamptoSpotifyMetricsManager(IEnumerableIWinampToSpotifyWebMetricsmetrics,IMeterFactorymeterFactory){_metricsmetrics.ToImmutableList();_metermeterFactory.Create(newMeterOptions(MeterName));}/// summary/// 注册WinampToSpotify实例中包含的所有自定义指标。/// /summarypublicvoidStart(){foreach(varmetricin_metrics){metric.RegisterMetrics(_meter);}}winamptospotifyweb.spotifyservice.totaltracksadded指标已导出到 Aspire Dashboard、Prometheus 和 Grafana。代码更改可以在 dotnet aspire added 和 opentelemetry and metrics added 提交中找到。更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手或者 我的个人博客 https://blog.qife122.com/对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享