如何在ExpressJS中使用通配符并快速监视库
#javascript #网络开发人员 #node #monitoring

随着蓬勃发展的软件经济,对新应用程序和软件定义的自动化的需求将在未来的几年中增长。

任何行业的公司都以内部业务工具,生产力工具,集成,自动化等形式创建软件。结果,有必要使工具易于创建和维护随着时间的推移。

可以通过自动执行许多任务手动执行的许多任务来优化软件交付生命周期,例如应用程序调试,监视和控制,警报和收集客户反馈。

如果您有一个可以帮助您的公司产生收入的应用程序,那么获得这些好处并帮助您的开发团队变得更加高效和富有成效。

亲自看看其他开发人员的想法:https://inspector.dev/testimonials

什么是检查员

Inspector是一种代码执行监视工具,可帮助开发人员自动识别其应用程序中的错误和瓶颈。

根据您使用的编程语言,您可以在我们的GitHub帐户中使用不同的库来连接您的应用程序:https://github.com/inspector-apm

在检查员仪表板中,您可以直观地分析数据。 Inspector将实时监视您的代码执行,请提醒您是否出了问题。

Image description

在某些情况下,并非所有应用程序零件都需要监视。也许是因为您想限制开发活动的重点,或者减轻数据消费不包括对不开采资产的请求,例如。

在最近更新之后,如果您将Inspector集成到应用程序中,则可以使用通配符配置“排除路径”。

将您的申请连接到检查员

如果您还没有帐户,则可以sign up here

步骤1 –创建一个新应用程序

登录您的Inspector帐户仪表板后,创建一个新项目。

Image description

步骤2安装库

在您的终端中运行下面的NPM命令:

npm install @inspector-apm/inspector-nodejs --save

步骤3初始化

要实时监视代码执行,您需要在第一行中初始化Inspector模块,然后才需要应用程序中的任何其他模块,即在Express之前,HTTP,MySQL等。

以后您可以在Express实例中使用expressMiddleware()

/* 
 * -------------------------------------------
 * Initialize Inspector with the Ingestion Key.
 * --------------------------------------------
 */
const inspector = require('@inspector-apm/inspector-nodejs')({
  ingestionKey: 'xxxxxxxxxxxxx',
});

const app = require('express')();

/* 
 * -----------------------------------------------
 * Attach the middleware to monitor HTTP requests.
 * ------------------------------------------------
 */
app.use(inspector.expressMiddleware());


/* 
 * ---------------------------------
 * Other application routes.
 * ---------------------------------
 */
app.get('/', function (req, res) {
    return res.send('Home Page!');
});

app.listen(3006);

排除路径

如果要在应用程序的某些部分中关闭监视,则可以将JSON对象传递给具有excludePaths属性的expressMiddleware函数,以定义要排除的路由:

app.use(inspector.expressMiddleware({
    excludePaths: [
        '/posts',
        '/posts/:id',
        '/admin'
    ]
}));

您还可以使用通配符*匹配URL的子集:

app.use(inspector.expressMiddleware({
    excludePaths: [
        // Single wildcard
        '/posts*',

        // More wildcards
        '/admin/*/posts*'
    ]
}));

你为什么要使用通配符?

您的应用程序中可能有一部分不会影响用户体验。考虑一个后端管理面板。您将排除系统的此私有部分,并将监视数据集中在客户方面。

我们的通配符匹配功能的实施

不幸的是,该框架默认情况下不支持通配符来识别当前请求的路径。

下面您可以在ExpressJsFastify插件中找到我们的实现:

exports.wildcardMatchRule = function(str, rule) {
    let escapeRegex = (str) => str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
    return new RegExp("^" + rule.split("*").map(escapeRegex).join(".*") + "$").test(str);
}

在我们的GitHub存储库中查看代码:https://github.com/inspector-apm/inspector-nodejs/blob/master/src/modules/utils.js

我们在快速中间件中使用通配符匹配函数,该功能迭代了在初始化检查期间通过当前请求路径进行匹配时通过的排除路径列表。

如果找到匹配匹配项,中间件不会启动交易:https://github.com/inspector-apm/inspector-nodejs/blob/master/src/modules/express.js#L12

在快速插件中也是如此:https://github.com/inspector-apm/inspector-nodejs/blob/master/src/modules/fastify.js#L21

现在免费尝试检查员

如果您有兴趣监视您的应用程序自动化所有手动监视习惯,我们会提供完整的免费层,以帮助您无需压力的新工具。

Inspector使用简单的软件库。它不安装在基础架构上,因此非常适合软件开发人员。

Navigate to our website有关更多信息,或者如果需要帮助,请进行实时聊天。我们很乐意为您和您的团队提供支持,以避免由于您的应用程序中的意外技术错误而损失客户和金钱。