asp.net core接入prometheus2-自定义指标

前提

了解一下asp.net core接入prometheus快速入门
https://blog.csdn.net/qq_36437991/article/details/139064138

新建.net 8空web项目

安装下面三个包

<PackageReference Include="OpenTelemetry.Exporter.Prometheus.AspNetCore" Version="1.8.0-rc.1" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.8.1" />
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="8.0.1" />

创建指标

HatCoMetrics.cs

using System.Diagnostics.Metrics;namespace PrometheusStu03;/// <summary>
/// 红帽子指标
/// </summary>
public class HatCoMetrics
{private readonly Counter<int> _hatsSold;public HatCoMetrics(IMeterFactory meterFactory){//红帽子商店var meter = meterFactory.Create("HatCo.Store");//冲帽子商店销量_hatsSold = meter.CreateCounter<int>("hatco.store.hats_sold",unit:"{hats}",description:"我们商店出售的帽子数量");}/// <summary>/// 增加数量/// </summary>/// <param name="quantity"></param>public void HatsSold(int quantity){_hatsSold.Add(quantity);}
}

指标收集

修改Program.cs

using OpenTelemetry.Metrics;namespace PrometheusStu03;public class Program
{public static void Main(string[] args){var builder = WebApplication.CreateBuilder(args);builder.Services.AddSingleton<HatCoMetrics>();var app = builder.Build();app.UseOpenTelemetryPrometheusScrapingEndpoint();app.MapGet("/", (HatCoMetrics metrics) =>{//可以将销量存放到数据库中metrics.HatsSold(1);return "销售数量加1";});app.Run();}
}

这样访问就能增加帽子的销量了
在这里插入图片描述

指标展示

修改Program.cs

using OpenTelemetry.Metrics;namespace PrometheusStu03;public class Program
{public static void Main(string[] args){var builder = WebApplication.CreateBuilder(args);builder.Services.AddSingleton<HatCoMetrics>();builder.Services.AddOpenTelemetry().WithMetrics(builder2 =>{builder2.AddPrometheusExporter();builder2.AddMeter("HatCo.Store");});var app = builder.Build();app.UseOpenTelemetryPrometheusScrapingEndpoint();app.MapGet("/", (HatCoMetrics metrics) =>{//可以将销量存放到数据库中metrics.HatsSold(1);return "销售数量加1";});app.Run();}
}

在这里插入图片描述

展示内置指标

builder.Services.AddOpenTelemetry().WithMetrics(builder2 =>{builder2.AddPrometheusExporter();builder2.AddMeter("Microsoft.AspNetCore.Hosting","Microsoft.AspNetCore.Server.Kestrel","HatCo.Store");});

在这里插入图片描述

参考

创建指标
.net中的内置指标
asp.net core中的指标
.net中的常见指标
.net core指标收集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/16015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

druid 1.2.14,application.yaml配置文件中,如何进行数据库加密配置

步骤一&#xff1a;先生成加密的密码&#xff1a; 步骤二&#xff1a;配置application.yaml文件&#xff1a; spring:datasource:driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSourcedruid:username: rootpassword: aPJ35saFz6ASmnmNt…

FFmpeg滤镜完整列表

FFmpeg滤镜完整列表 滤镜名称 用途 acompressor 压缩音频信号,当输入信号超过某个预设阈值时&#xff0c;压缩器就会开始工作。该滤镜使音量大的部分变得不那么响亮&#xff0c;而音量小的部分相对变得响亮&#xff0c;这样就可以使整体听起来更加均衡&#xff0c;常用于音乐…

【汽车操作系统】Autosar和商用OS

目录 什么是AUTOSAR? CP AUTOSAR架构 CAN通信 AP AUTOSAR 背景 CP&AP 开发方面的不同&#xff1a; WRLinux介绍 QNX介绍 什么是AUTOSAR? 随着汽车功能越来越多&#xff0c;导致ECU的数量越来越多。1993年的时候&#xff0c;奥迪A8才只有5个ECU现在典型的现代汽车…

计算机二级考试通关秘籍:全面解析、实战演练与高效备考策略

计算机二级考试通关秘籍&#xff1a;全面解析、实战演练与高效备考策略 一、计算机二级考试概览基本概念 二、科目详解与复习资料推荐C语言程序设计学习重点资料推荐 Java语言程序设计学习重点资料推荐 MySQL数据库程序设计学习重点资料推荐 Web技术与应用学习重点资料推荐 三、…

两种单例模式的区别

文章目录 看两个栗子传统指针版单例模式现代静态变量版单例模式 分析结论 看两个栗子 传统指针版单例模式 class Singleton { private:// 私有化构造函数Singleton() {}// 禁止拷贝构造函数Singleton(const Singleton&) delete;// 禁止拷贝赋值操作Singleton& opera…

自然资源-各级国土空间总体规划的审查要点及流程总结

自然资源-各级国土空间总体规划的审查要点及流程总结 国土空间规划是对一定区域国土空间开发保护在空间和时间上作出的安排&#xff0c;包括总体规划、详细规划和相关专项规划。 国土空间规划管理是国土空间规划中重要的一环。中共中央、国务院发布《关于建立国土空间规划体系…

LabelMe下载及关键点检测数据标注

本文关键点数据集链接,提取码:x1pk 1.LabelMe下载 这部分内容和YOLOv8_seg的标注软件是一样的,使用anaconda创建虚拟环境安装LabelMe,指令如下: conda create -n labelme python=3.6 -y conda activate labelme conda install pyqt conda install pillow pip install la…

朝天椒USB服务器为何脱颖而出,与其它产品有何不同?

在数字化时代&#xff0c;USB服务器作为解决U盾、加密狗、Ukey等USB设备原创连接、集中管理和共享使用问题的有效工具&#xff0c;越来越受到各行各业的重视。在众多品牌中&#xff0c;朝天椒USB服务器凭借其独特的技术优势和市场定位&#xff0c;成功脱颖而出&#xff0c;成为…

python:__set_name__使用

python&#xff1a;__set_name__使用 1 前言 在Python中&#xff0c;我们可以通过__set_name__方法来实现一些特殊的操作。该方法是在定义类的时候被调用&#xff0c;用于设置属性的名称。这样一来&#xff0c;我们就可以在类定义中动态地获取属性的名称&#xff0c;从而更好…

Pytorch深度学习实践笔记6(b站刘二大人)

&#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;pytorch深度学习 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

C#记录日志

1、方法 private void Log(string LogStr) { //Trace.WriteLine(LogStr); StreamWriter sw null; try { LogStr DateTime.Now.ToLocalTime().ToString() "\n" LogStr; sw new StreamWriter("C:\\Text" DateTime.No…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十)- JUC(6)

目录 wait , notify wait vs sleep 正确使用方法 同步保护性暂停 join的源码 Future 异步生产者/消费者模型 定义 Park & Unpark 原理 wait , notify 小故事小南需要烟才能工作&#xff0c;但它又要占这锁让别人无法进来。那么这个时候开一个waitSet相当于就是休…

一文讲解——Java多态

目录 一、什么是多态&#xff1f;二、转型向上转型向下转型 三、方法覆盖与方法重载四、绑定动态绑定静态绑定 五、理解多态 一、什么是多态&#xff1f; 多态的词组字面意思是&#xff1a; 某种事物多种形态。 但是对于我们学习Java 的程序原来说&#xff0c;就不不能简单这样…

springboot中线程池的使用

一、概念 线程池就是将多个线程对象放入一个池子里面&#xff0c;例如一个池塘&#xff0c;线程池就是这个池塘&#xff0c;池塘里面的鱼就是线程池中的多个线程对象。1. 每一个线程&#xff0c;在一段时间内只能执行一个任务。2. 线程池中的各个线程是可以重复使用的。 二、创…

2024年内外贸一体化融合发展(长沙)交易会 ​办公文具、礼品工艺品展

2024年内外贸一体化融合发展&#xff08;长沙&#xff09;交易会 办公文具、礼品工艺品展 时间&#xff1a;2024年7月12-14日 地点&#xff1a;湖南国际会展中心&#xff08;芒果馆&#xff09; 湖南省商厅 关于邀请参加2024内外贸一体化融合发展&#xff08;长沙&#xf…

Weblogic XML反序列化漏洞 [CVE-2017-10271]

漏洞环境搭建请参考 http://t.csdnimg.cn/i11e2 漏洞原理 Weblogic的wls security组件对外提供webservice服务&#xff0c;wls security组件使用了xmldecoder来解析用户传入的xml数据&#xff0c;如果用户进行xml恶意数据的构造&#xff0c;即可触发反序列化漏洞 漏洞版本 O…

簡述vue的實現原理

Vue.js 的实现原理可以概括为以下几个方面&#xff1a; 响应式系统&#xff1a; Vue 的核心是其响应式系统。当 Vue 实例被创建时&#xff0c;它会遍历 data 对象中的所有属性&#xff0c;并使用 Object.defineProperty 方法将其转换为 getter 和 setter。当 data 中的属性发生…

python:如何创建简单的流媒体服务器来播放.flv文件

要在Python中创建一个简单的流媒体服务器来播放FLV&#xff08;Flash Video&#xff09;文件&#xff0c;你通常需要一个HTTP服务器&#xff0c;该服务器能够处理对FLV文件的范围请求&#xff08;Range Requests&#xff09;&#xff0c;因为流媒体通常不是一次性下载整个文件&…

CentOS 7.9 邮箱部署——Postfix+Dovecot详细

PostfixDovecot 文章目录 PostfixDovecot资源列表基础环境一、部署DNS二、部署postfix和dovecot2.1、配置postfix2.2、配置dovecot2.3、创建邮件用户 三、发送邮件测试3.1、windows安装poxmail3.2、登录邮箱3.3、发送接收邮件 四、搭建SSL认证加密4.1、生成私钥4.2、生成公钥4.…

正则工具类

目录 1、 * 正则工具类 1.1、 * 提供验证邮箱、手机号、电话号码、身份证号码、数字等方法 1.1.1、 * 验证固定电话号码 1.1.2、 * 验证整数(正整数和负整数) 1.1.3、 * 验证整数和浮点数(正负整数和正负浮点数)