首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有应用程序内部NodeJs的遥测处理器中的异步操作

带有应用程序内部NodeJs的遥测处理器中的异步操作
EN

Stack Overflow用户
提问于 2016-10-03 10:57:26
回答 1查看 663关注 0票数 0

我想做的是添加自定义属性到遥测数据,因为它离开我的应用程序。目前,我正在使用遥测处理器实现这一目标,但是理想情况下,我希望从数据库读取要与事件一起发送的值。

是否可以在遥测处理器内执行异步操作?

代码语言:javascript
复制
var TraceProcessor = function (app) {
    return function (envelope) {

        var i;
        var objTelemetryController = app.telemetryController;

        objTelemetryController.__proto__.getActiveTraces('GLOBAL', function (err, objTraces) {
            if (err) {
                // Error controller log error
                return;
            }

            if (objTraces) {
                for (i = 0; i < objTraces.length; i++) {
                    envelope.data.baseData.properties['TraceProperty'] = objTraces[i];
                }

                return true;
            }
        });
    };
};
module.exports = TraceProcessor;

使用他的代码,遥测数据不会被发送,因为洞察力要求从正在使用的任何遥测处理器返回true。显然,这种情况最终会发生,但并不是为了可以添加属性。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-06 01:04:56

我认为最好使用TelemetryInitializer来用额外的信息丰富遥测数据,TelemetryProcessor的目的更倾向于过滤而不是数据富集。

但是,我认为,如果您试图从遥测初始化器中调用SQL或HTTP依赖项,它可能会进入一个没完没了的循环:

  • 遥测项在初始化器中处理。
  • 初始化程序启动SQL查询AI。
  • 检测SQL查询并开始处理有关它的遥测项。
  • 遥测初始化器调用到SQL..。

我怀疑在这个时候异步是否真的被支持,它可能会有帮助(例如返回一个任务,等待价值来填补),但是它需要一个沉浸式的调查来考虑所有的案例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39829978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档