问题描述
我们有一个在.Net Core上运行的GraphQL API。由于所有查询均针对/ graphql端点进行,因此我们在Azure Application Insights的性能页上仅获得一个操作“ POST / graphql”,而REST API允许Aplication Insights自动为我们提供每个端点的性能(例如GET /用户,POST /事件等...)。
为了仍然获得性能指标,我在代码中添加了自定义遥测技术。当调用用于检索用户的代码时,我这样做:
RequestTelemetry requestTelemetry = new RequestTelemetry
{
Name = "UsersRequest"
};
var operation = _telemetryClient.StartOperation(requestTelemetry);
完成后,我会这样做:
operation.Telemetry.Success = true;
_telemetryClient.StopOperation(operation);
return result;
然后,当我打开“ POST / graphql”操作(如下面的屏幕快照)时,可以看到包装在“ UsersRequest”中的依赖项调用(假设“ CustomMiddleware”说“ UsersRequest”):
这已经是一个很大的帮助,这比让所有数据库请求相互之间无结构的情况更为明显。
唯一缺少的是,我看不到性能页面上的“ UsersRequest”或“ CustomMiddleware”作为一项操作本身。这将是巨大的帮助,性能页面提供了惊人的见解。能够看到“ UsersRequest”在最近24小时内被调用了500次,在最近7天中性能一直在下降,或者平均持续时间为50ms,这将非常有帮助。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)