Man*_*uel 2 newrelic parse-platform parse-server
添加 New Relic APM 跟踪 Parse Server 时,对 Cloud Code 函数和类的调用显示为:
/parse/classes/:className
/parse/functions/:functionName
Run Code Online (Sandbox Code Playgroud)
相反,我想将它们显示为:
/parse/classes/myClass
/parse/functions/myFunction
Run Code Online (Sandbox Code Playgroud)
对于 Cloud Code 函数调用,我可以设置事务名称:
Parse.Cloud.define("myFunction", async(request) => {
newrelic.setTransactionName("myFunction");
//...
});
Run Code Online (Sandbox Code Playgroud)
但是如何跟踪所有对类的调用的名称?
New Relic Node.js 代理具有用于无法关闭的事务的自动命名功能*。
从文档:
关于 New Relic 对 Express、Restify 或 Hapi 的支持,唯一需要了解的重要一点是,如果您对它提供的名称不满意,您可以使用下面描述的 API 调用来提供更具描述性的名称。
因此,解决方案是通过将自定义名称规则添加到newrelic.js. 诀窍是使用正则表达式组替代作为名称。
rules: {
name: [
// post /parse/classes/:classeName
// get /parse/classes/:classeName/:objectId
{
pattern: '^(\/parse\/classes\/[_0-9A-Za-z]*)(\/.*)*',
name: '\\1'
},
// post /parse/functions/:functionName
{
pattern: '^(\/parse\/functions\/.*)$',
name: '\\1'
},
// post /parse/files/:filename
// get /parse/files/:appId/:filename
{
pattern: '^(\/parse\/files)\/.*$',
name: '\\1'
}
]
}
Run Code Online (Sandbox Code Playgroud)
上面的模式按类名对调用进行分组,忽略有时附加的对象 ID。这使得也没有必要setTransactionName为每个 Cloud Code 函数添加一个。
*可以为 Java 代理关闭该选项,但对于 Node.js 代理似乎不存在该选项。
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |