UseApplicationInsights() 可以直接删除,使用新 API: 在 Startup.cs 的 ConfigureServices() 方法里加入: services.AddApplicationInsightsTelemetry...": "你的KEY" } 我的建议是不要手工传入参数,而依赖配置文件或环境变量,这样可以在 Azure App Services 里直接关联 Application Insights Razor 页面里的代码可以不用动...砍刀传送门:https://github.com/microsoft/ApplicationInsights-dotnet/issues/1152 比如原来你的代码希望在非生产环境下关闭遥测,基本上都会这么写...://docs.microsoft.com/en-us/azure/azure-monitor/app/api-custom-events-metrics#disabling-telemetry 而是在另一篇文档里提到了...configuration.DisableTelemetry = true; } 清理垃圾 如果你的老应用是用 VS2019 一键梭哈方式全自动添加的 Application Insights,那么会留下这么几个地方可以删除,不会影响遥测数据
2,添加代理:对于虚拟机,可安装 Log Analytics 代理,并将其配置为将数据发送到 Log Analytics 工作区。此代理会增加发送到 Azure Monitor 的信息量。...开发人员可能还想要从自定义代码(例如 Web 应用、Azure 函数或移动应用)将数据发送到 Azure Monitor。他们通过调用数据收集器 API 来发送数据。...指标 指标是数字值,用于描述系统某些方面在某个时间点的情况。Azure Monitor 可以近乎实时地捕获指标。这些指标按固定时间间隔收集,在因其频繁采样而发出警报时很有用。...可以通过与 Visual Studio App Center 集成来监视和分析移动应用的遥测数据。...因为是对于我们在一分钟内看到的是同一个Http请求。
可以通过与 Visual Studio App Center 集成来监视和分析移动应用的遥测数据。... ApplicationInsights.AspNetCore" Version="2.13.1".../> 在Startup.ConfigureServices下注入Application Insignhts相关的服务。...public void ConfigureServices(IServiceCollection services) { //register application...{ "ApplicationInsights": { "InstrumentationKey": "xxxxxxxxxxxxxx" }, "Logging": { "LogLevel
从.NET Core2.2开始,我们不需要为运行状态在去自定义检查控制器和接口,而是框架本身已经为我们提供了运行状况的检查服务。...Task.FromResult(HealthCheckResult.Healthy()); } } 创建该类之后,我们需要通过使用一些有效的唯一名称,AddCheck ()方法在ConfigureServices...自定义状态码 在之前我们也说过200为健康,503为不健康那么Healthcheck服务甚至通过以下方式使用其options对象提供自定义状态代码,为我们提供了更改此默认的状态码。...健康检查界面 Install-Package AspNetCore.HealthChecks.UI 安装完成后,需要相应地在ConfigureServices()和Configure()方法中调用相应的服务方法...但是界面上没有我们刚才自定义的,那我们在进行配置 Appsetting.json { "ApplicationInsights": { "InstrumentationKey": "your-instrumentation-key
从.NET Core2.2开始,我们不需要为运行状态在去自定义检查控制器和接口,而是框架本身已经为我们提供了运行状况的检查服务。...return Task.FromResult(HealthCheckResult.Healthy());} } 创建该类之后,我们需要通过使用一些有效的唯一名称,AddCheck ()方法在ConfigureServices...自定义状态码 在之前我们也说过200为健康,503为不健康那么Healthcheck服务甚至通过以下方式使用其options对象提供自定义状态代码,为我们提供了更改此默认的状态码。...健康检查界面 Install-Package AspNetCore.HealthChecks.UI 安装完成后,需要相应地在ConfigureServices()和Configure()方法中调用相应的服务方法...但是界面上没有我们刚才自定义的,那我们在进行配置 Appsetting.json Copy { "ApplicationInsights": { "InstrumentationKey":
也可以指向多个.net版本, 那就使用TargetFrameworks, 例如: netcoreapp2.0;net47 编译后, 在bin...localhost, unix socket), 可以使用: .PreferHostingUrls(true) 监听指定的url: .UseUrls("http://0.0.0.0:5000") 使用ApplicationInsights...ConfigureServices方法用来注册服务. Configure方法用来配置请求管道....添加mvc中间件, 就在ConfigureServices方法里: services.AddMvc(); 使用mvc中间件, 在Configure里: app.UseMvc(routes =>...builder) { return builder.UseMiddleware(); } } 最后在Startup
这对于以下几个原因很有用: 在产生大量网络成本之前,可以在服务运行的同一节点或集群上组合、批处理和过滤各个服务的遥测。 可以更改遥测过滤和采样规则的配置,而无需更改或重新部署正在监控的服务。...转换Processor对于使用 OTTL(OpenTelemetry 转换语言) 在保存遥测之前对其进行过滤和规范化也很有用。...Exporter 是管道中将遥测发送到下游Processor和数据库的最后阶段。如果需要,可以组合多个Exporter,将部分或全部遥测发送到多个目标。...来自 kubernetes 特定Receiver的遥测已使用正确的资源属性进行标记,使我们能够在节点和 Pod 级识别数据点。...对于在 Kubernetes 中运行的应用程序,我们可以使用 Kubernetes 属性Processor 自动使用相同的节点和 Pod 级描述符标记传入的应用程序遥测。
将引用 Microsoft.AspNetCore.All 替换为 Microsoft.AspNetCore.App 项目依赖中找到 Microsoft.AspNetCore.All ,移除它, 在Nugget...Microsoft.AspNetCore.App 注意:以下内容依旧包含在 Microsoft.AspNetCore.All 中, 而 Microsoft.AspNetCore.App 中不存在 Microsoft.AspNetCore.ApplicationInsights.HostingStartup...configuration; } public IConfiguration Configuration { get; } public void ConfigureServices...其他改动 shared文件夹中添加了新文件_CookieConsentPartial.cshtml, 在_Layout文件中被引用 <partial name="_CookieConsentPartial
注意尽量选择最高的平台,在项目开发是需要通过用户才知道需要选哪个平台。但是在开始学的时候,请尽量选择最新版本,这样可以减少因为版本问题让自己的时间花费在解决版本问题不兼容 ?...在 UWP 项目,引用的叫引用,在 asp dotnet core 项目,引用叫依赖项,只需要右击项目,点击添加就可以看到引用 ?...打开 Startup.cs 找到 ConfigureServices ,可以看到下面代码 public void ConfigureServices(IServiceCollection...UseSqlServer 就是使用 sql server 数据库,把他修改为options.UseInMemoryDatabase("lindexi")请看代码 public void ConfigureServices...asp dotnet core 项目的输出看到和下面差不多的输出 Application Insights Telemetry (unconfigured): {"name":"Microsoft.ApplicationInsights.Dev.Message
在弹出的界面中将会显示已经配置好的日志分析工作空间。 如果你还没有的话,你需要创建一个。 单击界面上的 Add 按钮,进行新建。 在新建的对话框中你需要对你的费用订购部分进行配置。...在第二部分输入的是名称和区域,名称可以根据需要命名,区域的话,选一个离你最近的就可以了。 在配置完上面的参数后,创建就可以了。...在最下面的就是有关日志的配置了,因为要在这里进行选择,这就是为什么我们需要首先配置日志工作空间的原因,否则是没有办法配置日志的。 在一切配置妥当后,单击最下面的预览并创建即可。... com.microsoft.azure applicationinsights-logging-logback...<appender name="aiAppender" class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender
OpenTelemetry 介绍 我在之前的几篇文章都介绍了 OpenTelemetry, 你可以在这里找到 OpenTelemetry - 云原生下可观测性的新标准 深入研究.NET 5的开放式遥测...ConsoleExporter ConsoleExporter 是最简单的导出数据的实现,它会把诊断数据输出到控制台 安装包 OpenTelemetry.Exporter.Console,然后修改 ConfigureServices...确实是这样,因为.NET 中已经有了 Activity 类型,所以.NET 团队决定重用它,并且在 .NET 5增强为 ActivitySource, 所以在.NET 中,你可以把 Span 和 Activity...安装包 OpenTelemetry.Exporter.Jaeger,然后修改 ConfigureServices 如下: services.AddOpenTelemetryTracing((builder...安装包 OpenTelemetry.Exporter.Zipkin,然后修改 ConfigureServices 如下: services.AddOpenTelemetryTracing((builder
这就是我们在本文中将要关注的内容:CI/CD 流水线的可观测性。首先,我们将定义一些事物;然后,我们将深入探讨观测流水线的重要性以及如何使其可观测;最后,我们将通过讨论一些剩余的挑战来结束。...你可以对你的应用程序进行一次仪器化,然后将你的遥测数据发送到最适合你的任何后端。它还提供了一些非常酷的工具,例如 Collector。...您仍然需要将生成的遥测发送到后端进行分析,但我们将重点放在第一部分上,即仪器化。...Jenkins CI/CD 管道可以通过 Jenkins OTel 插件发出遥测信号。 在构建阶段: 您可以使用 Maven OTel 扩展发出 Java 构建的分布式跟踪。...数据可以使用标准的 OTLP 接收器来摄取遥测数据,还有 Git Provider 接收器和 Filelog 接收器。然后 Collector 将遥测信号发送到可观测性后端。
设置完成后,通过在 shell 中键入 dotnet 命令,然后按下 Tab 键即可触发 .NET CLI 的 Tab 自动补全。...当前命令行将发送到 dotnet complete 命令,结果将由 shell 处理。 可以通过直接向 dotnet complete 命令发送内容来测试结果而无需启用 tab 自动补全。...dotnet add package Microsoft⇥ dotnet add package Microsoft.ApplicationInsights.Web 结果按字母顺序返回。...PowerShell 若要将 Tab 自动补全添加到适用于 .NET CLI 的 PowerShell,请创建或编辑存储在变量
这会导致本地开发调试代码的时候,有大量无用的监控数据,比如错误、异常、程序响应时间等,被发送到了Azure,和生产上的监控数据合并到了一起。...(Debug时候产生的监控数据) 调教 VS2017 在 Tools > Options > Project and Solutions > Web Projects 下面,勾选 Disable local...代码更改 首先,在开发环境使用的appsettings.Development.json里,用空GUID覆盖InstrumentationKey "ApplicationInsights": { "
在 代理模式 中,Collector 与应用程序并排放置,或与应用程序位于同一主机上。 在 网关模式 中,遥测数据被发送到负载均衡器,然后负载均衡器确定如何在 Collector 池中分配负载。...然后可以将 Collector 代理的遥测数据发送到 Collector 网关。因为网关位于负载均衡器之后,所以你没有导出遥测数据(通常到你的可观测性后端)的单点故障。...要点:拥有正确的 Collector 部署配置以将数据发送到你的可观测性后端,可确保你的遥测收集基础设施具有更高的可用性。 2....在适当的情况下不使用 OpenTelemetry Collector OpenTelemetry 允许您通过两种方式将遥测信号从您的应用程序发送到可观测性后端: 对于非生产系统,“直接从应用程序”发送遥测数据很好...例如,当从 IOT 设备在边缘收集数据时,最好将数据直接发送到其可观测性后端,而不是本地 Collector,因为该边缘上的资源可能有限。
使用 Application Insights 进行监控和遥测 在 中配置 Application Insights :Program.cs builder.Services.AddApplicationInsightsTelemetry...运行状况检查和负载均衡 在您的应用程序中实施运行状况检查: builder.Services.AddHealthChecks(); // Add this in your Program.cs...安全最佳实践 在 中强制执行 HTTPS 重定向 :Startup.cs public void Configure(IApplicationBuilder app, IWebHostEnvironment...使用环境变量进行配置 通过环境变量管理设置和配置,以将敏感数据排除在代码之外: public void ConfigureServices(IServiceCollection services)...使用加密保护数据 利用 .NET 中的数据保护 API 加密敏感数据: public void ConfigureServices(IServiceCollection services) {
Collector 可以下载并配置为从不同来源收集数据,并可以在将遥测数据导出到不同后端之前对遥测数据执行聚合、采样和其他操作,具体取决于具体用例。...一旦 Collector 对数据感到满意,它就会将遥测信号发送到平台进行存储和分析。...例如,Collector 可以将日志发送到 Loki 等日志聚合平台,将 metric 发送到 Prometheus 等监控平台,将 trace 发送到 Jaeger 等分布式跟踪平台。...然后可以使用存储在平台中的遥测数据来深入了解系统的行为和性能,并确定需要解决的任何问题。...它指定收集器的配置,包括接收器(遥测数据源)、处理器(用于过滤和转换数据)和导出器(用于将数据发送到后端)。
OpenTelemetry 协议(OTLP) OpenTelemetry 协议(OTLP)规范描述了遥测数据在遥测源、收集器和遥测后端之间的编码、传输和传递机制。...OpenTelemetry Collectors 应用程序的遥测数据可以发送到 OpenTelemetry Collectors 收集器。...收集器是 OpenTelemetry 的一个组件,它接收遥测数据(span、metrics、logs 等),处理(预处理数据)并导出数据(将其发送到想要的通信后端)。...基本版 - 客户端使用 OTLP 进行检测,将数据发送到一组收集器。 可以将数据发送到多个导出器。...我们可以在 OpenTelemetry 收集器中配置 Jaeger 导出器,以便将数据发送到 Jaeger。
我们将使用 Embrace Apple SDK 将兼容的 OTel Exporter 附加到应用程序,然后将移动跟踪发送到 OTel Collector。...配置 OTel 导出器 让我们使用 gRPC 设计我们自己的导出器,以发送到本地 OTel Collector。...由于 Embrace SDK 构建于 OpenTelemetry 之上,我们可以将遥测数据发送到任何我们想要的地方。(当然,前提是该位置也支持 OTel。)...: 从 iOS 应用的导出器接收遥测数据后,我们希望收集器本身将遥测数据发送到 Zipkin。...它的功能允许您将移动遥测数据发送到与后端可观测性数据相同的位置。 为什么开发团队应该将这些结合起来?如果您没有考虑用户体验,您如何知道您的系统是健康的?例如,您的网络不应该仅仅反映传输数据的服务。
提供者、资源、导出器和收集器 在 OpenTelemetry 中,提供者、资源、导出器和收集器协同工作以收集、处理遥测数据并将其发送到外部系统。...提供者负责生成遥测数据,它们依赖于资源,资源定义有关应用程序的元数据,例如服务名称、版本和主机。收集遥测数据后,需要将其发送到某个地方,这就是导出器所做的事情。...为了更有效地管理此过程,OpenTelemetry 使用收集器,收集器充当中间人,在将遥测数据发送到一个或多个后端之前,对其进行聚合、处理和路由。...,而且更容易在将来更换底层遥测系统。...这对于测试非常有用,因为我们不希望将遥测数据发送到外部系统。 使用 Telemetry 包 在 main.go 中,我们现在可以初始化并使用我们的遥测系统。