我想知道是否有办法查看对我的服务结构应用程序发出的所有请求,同时它已经发布在 azure 服务器上,或者至少捕获所有请求并将它们保存在某个地方,我需要诸如源之类的信息和 body 。
提前致谢!
最佳答案
要查看所有请求和响应,您首先需要将它们登录到某个地方。以下是可用的方法:
- 流式传输到 VS Cloud Explorer
您可以使用 ServiceEventSource 来记录有值(value)的信息并 然后您将能够通过连接到您的 SF 集群来看到它 VS 中的 CloudExplorer。您可以在这里找到更多信息 - Debug your Service Fabric application by using Visual Studio .
- Windows Azure 诊断
您可以在 VM 上安装的 WAD 扩展会将日志上传到 Azure 存储,并且还可以选择将日志发送到 Azure Application Insights 或事件中心。查看Event aggregation and collection using Windows Azure Diagnostics .
- 事件流
使用 EventFlow允许您让服务将其日志直接发送到分析和可视化平台和/或存储。其他库(ILogger、Serilog 等)可能用于相同目的,但 EventFlow 的优点是专为进程内日志收集和支持 Service Fabric 服务而设计。
- 使用 OMS 进行事件分析和可视化
配置 OMS 后,您将可以访问特定的 OMS 工作区,可以在仪表板中查询或可视化数据。 Log Analytics 收到数据后,OMS 拥有多个管理解决方案,这些解决方案是用于监控传入数据的预打包解决方案,并针对多种场景进行了定制。其中包括 Service Fabric 分析解决方案和容器解决方案,这是使用 Service Fabric 群集时与诊断和监控最相关的两个解决方案。查找更多信息 Event analysis and visualization with OMS和 Assess Service Fabric applications and micro-services with the Azure portal .
您可以通过多种方式捕获源代码和正文,或者您需要的任何内容。您可以在下面找到一些:
如果不这样做,请在 Controller 类上应用 ActionFilterAttribute 拥有一个,并在 OnActionExecuted 方法中记录您需要的所有信息
在 Startup 类中添加中间件 -
public static void ConfigureApp(IAppBuilder appBuilder) { // Configure Web API for self-host. HttpConfiguration config = new HttpConfiguration(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); appBuilder.Use(async (IOwinContext context, Func<Task> next) => { await next.Invoke(); // log anything you want here ServiceEventSource.Current.Message($"Response status code = {context.Response.StatusCode}"); }); appBuilder.UseWebApi(config); }
关于azure - 如何查看请求日志 Service Fabric 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45424831/