是否可以使用 Jetbrains DotTrace 分析 Azure App Service?
Is it possible to profile Azure App Service using Jetbrains DotTrace?
这是我到目前为止尝试过的:
1) 使用 Kudu 和 运行 将控制台工具上传到应用程序。嗯,这是不可能的,因为不允许写入注册表。
2) 使用 Kudu 和 运行 上传 RemoteAgent。我越来越:
No DNS entries exist for host xxx. No such host is known.
来自 dotTrace UI 当连接到 Kudu 控制台打印的 URL 时。 App服务只能监听80和443端口
3) 使用 dotTrace SDK 和 JetBrains.Profiler.Api 看起来很有希望。它不想在 Azure 上附加探查器(而不是在没有问题的本地),使用此代码它会遇到超时异常。
private void AttachProfiler(ProfilingType profilingType)
{
var folder = AppDomain.CurrentDomain.BaseDirectory;
FileList = GetListFile(folder);
CurrentProfilingType = profilingType.ToString();
SelfAttach.Attach(new SaveSnapshotProfilingConfig
{
ProfilingControlKind = ProfilingControlKind.Api,
SaveDir = Path.Combine(folder, "Temp") ,
RedistDir = Path.Combine(folder, "_JetBrains.Profiler.SelfSdk.2019.1.3"),
ProfilingType = profilingType,
ListFile = FileList
});
SleepUntilAttachedOrTimedOut();
}
private static string GetListFile(string folder)
{
return Path.Combine(folder, "snapshot_list.xml");
}
private void SleepUntilAttachedOrTimedOut()
{
var totalMilliseconds = 0;
while (!CheckProfilerAttached())
{
var intervalMilliseconds = 250;
Thread.Sleep(intervalMilliseconds);
totalMilliseconds += intervalMilliseconds;
if (totalMilliseconds >= 60000)
{
throw new TimeoutException("Could not attach profiler. Timeout.");
}
}
}
private bool CheckProfilerAttached() => SelfAttach.State == SelfApiState.Active;
目前不可能。此处创建的问题:https://youtrack.jetbrains.com/issue/PROF-921
这是我到目前为止尝试过的:
1) 使用 Kudu 和 运行 将控制台工具上传到应用程序。嗯,这是不可能的,因为不允许写入注册表。
2) 使用 Kudu 和 运行 上传 RemoteAgent。我越来越:
No DNS entries exist for host xxx. No such host is known.
来自 dotTrace UI 当连接到 Kudu 控制台打印的 URL 时。 App服务只能监听80和443端口
3) 使用 dotTrace SDK 和 JetBrains.Profiler.Api 看起来很有希望。它不想在 Azure 上附加探查器(而不是在没有问题的本地),使用此代码它会遇到超时异常。
private void AttachProfiler(ProfilingType profilingType)
{
var folder = AppDomain.CurrentDomain.BaseDirectory;
FileList = GetListFile(folder);
CurrentProfilingType = profilingType.ToString();
SelfAttach.Attach(new SaveSnapshotProfilingConfig
{
ProfilingControlKind = ProfilingControlKind.Api,
SaveDir = Path.Combine(folder, "Temp") ,
RedistDir = Path.Combine(folder, "_JetBrains.Profiler.SelfSdk.2019.1.3"),
ProfilingType = profilingType,
ListFile = FileList
});
SleepUntilAttachedOrTimedOut();
}
private static string GetListFile(string folder)
{
return Path.Combine(folder, "snapshot_list.xml");
}
private void SleepUntilAttachedOrTimedOut()
{
var totalMilliseconds = 0;
while (!CheckProfilerAttached())
{
var intervalMilliseconds = 250;
Thread.Sleep(intervalMilliseconds);
totalMilliseconds += intervalMilliseconds;
if (totalMilliseconds >= 60000)
{
throw new TimeoutException("Could not attach profiler. Timeout.");
}
}
}
private bool CheckProfilerAttached() => SelfAttach.State == SelfApiState.Active;
目前不可能。此处创建的问题:https://youtrack.jetbrains.com/issue/PROF-921