在Web作业/应用程序中捕获性能计数器?

时间:2016-01-07 23:09:36

标签: azure-web-sites azure-webjobs azure-application-insights

是否可以捕获当前进程/应用程序的性能计数器值?我正在尝试捕获有关正在运行的Web作业的指标,例如GC中的%TIme,Gen N堆大小,线程争用率/秒等。我看到Application Insights可以在我的网站中启用时捕获这些指标。 / p>

public class event extends Fragment {

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.event, container, false);
        setHasOptionsMenu(true);
        return view;
}
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.notify:
                Log.i("4", "Notify pressed");
                return true;

            case R.id.action_settings:
                Log.i("4", "Settings pressed");
                return true;

            default:
                // If we got here, the user's action was not recognized.
                // Invoke the superclass to handle it.
                return super.onOptionsItemSelected(item);

        }
    }
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.custom_menu, menu);
    }
}

我理解为什么这会失败,因为Auzre / kudu运行时沙箱需要确保实例是我的进程而不是其他客户的进程。有没有办法访问我的进程'计数器,以便我可以报告/收集它们?我希望这个集合能够在这个过程中发生。

1 个答案:

答案 0 :(得分:1)

目前,正如您所提到的,由于沙箱限制,无法收集性能计数器。我们正在研究如何以安全的方式实现这一目标,但没有时间表可以分享。

此时您最好的选择可能是使用应用程序洞察,这是目前为您的应用程序收集诊断的推荐方法(他们为几乎任何应用程序类型提供解决方案 - 而不仅仅是网络应用程序):https://azure.microsoft.com/en-us/documentation/services/application-insights/