将ServiceStack Redis的使用推广到Application Insights Dependency Telemtry

问题描述

我们使用ServiceStack $_ENV与我们的Redis服务器对话。如何从这些调用(命令,调用成功/失败,持续时间等)将遥测发送到应用程序见解。在ICacheClient调用之后,是否有一个我可以订阅的事件被触发,我可以在其中编写一些代码以将数据发送到Applicaiton Insights?

例如,这是我为MongoDB驱动程序执行的操作:

ICacheClient

谢谢!

解决方法

您可能需要像CacheClientWithPrefix.cs这样的装饰器类来装饰所有ICacheClient提供者,以添加prefix to all ICacheClient APIs,例如:

container.Register(c => 
    c.Resolve<IRedisClientsManager>().GetCacheClient().WithTelemetry());

它在拦截每个API调用的地方也要调用遥测API。