在Application Insights中显示特定的PHP文件

时间:2019-06-02 12:30:05

标签: php azure azure-application-insights

我们将一个非常老的php应用程序迁移到了Azure,并且已经通过Web App选项激活了Application Insights。

现在,我们确定了一些很高的请求持续时间(> 15s),但我们无法确定哪个php文件负责。

在特定的操作信息中,我们仅看到domain.com/folder/,而没有看到相应的php文件。

在这个笨拙的旧php应用程序中,我们必须配置什么才能查看哪个文件(= function => domain.com/folder/myfile.php)?

我们已经在开发中以替换该应用程序的本机Azure功能,但是我们现在需要一个过渡修复程序。

谢谢

1 个答案:

答案 0 :(得分:0)

同意 @Mike Oryszak ,您需要编写代码以在代码中收集自定义事件。

为此,您只需在代码中安装应用程序见解,然后

$telemetryClient = new \ApplicationInsights\Telemetry_Client();
$context = $telemetryClient->getContext();

// Necessary
$context->setInstrumentationKey('YOUR INSTRUMENTATION KEY');

// Optional
$context->getSessionContext()->setId(session_id());
$context->getUserContext()->setId('YOUR USER ID');
$context->getApplicationContext()->setVer('YOUR VERSION');
$context->getLocationContext()->setIp('YOUR IP');

// Start tracking
$telemetryClient->trackEvent('name of your event');
$telemetryClient->flush();

通过调用以下方法,您可以在AI遥测中记录任何消息。

$telemetryClient->trackEvent('name of your event');

在这里,您可以使用自定义属性发送自定义遥测。

$telemetryClient->trackEvent('name of your event', ['MyCustomProperty' => 42, 'MyCustomProperty2' => 'test'], ['duration', 42]);

发送带有持续时间,http状态代码,请求是否成功,自定义属性和度量的请求遥测项目。这似乎是您的最佳选择。

$telemetryClient->trackRequest('myRequest', 'http://foo.bar', time(), 3754, 200, true, ['InlineProperty' => 'test_value'], ['duration_inner' => 42.0]);

您可以查找更多示例here

希望有帮助。