Google .net 6(或至少 .net core 3+)控制台应用程序中的云跟踪

Google Cloud Tracing in a .net 6 (or at least .net core 3+) Console App

我一直在尝试在 .net 6 控制台应用程序中实现 Cloud Trace,该应用程序充当通过发布者订阅者模式传入的事件的侦听器。 我一直在关注 Google 的诊断 NuGet https://cloud.google.com/dotnet/docs/reference/Google.Cloud.Diagnostics.AspNetCore/latest 文档,但没有成功。当我在 WebAPI 项目上应用它时,它就像一个魅力,但在控制台应用程序上使用它 post 对 GCP Cloud Trace 没有任何影响。 我正在尝试使用 IManagedTracer.StartSpan() 方法强制代码启动跟踪跨度并向 GCP 发送一些内容,但没有任何反应。没有错误也没有痕迹。 我也尝试过使用 https://cloud.google.com/dotnet/docs/reference/Google.Cloud.Diagnostics.Common/latest 来做到这一点,据我了解,它基本上是 Google.Cloud.Diagnostics.AspNetCore 的底层库的代码,它包装了这些东西并通过 IOC 设置了一些额外的东西。

有人知道使用 Google Cloud trace 和 .net 的示例项目吗?或者如果我明显遗漏了一些基本的东西?

仅供参考...我 运行 使用硬编码的 projectId 在本地连接到 GCP 上的项目,我的帐户在我的机器上经过身份验证并分配了所有者角色,因此权限不应该成为一个问题。我的机器可以 post 跟踪,因为我已经成功地从示例 WebAPI 中推送了跟踪,我首先测试了它。

https://github.com/googleapis/google-cloud-dotnet/issues/6367#issuecomment-903852079 这个 github 线程几乎回答了我的问题并为此提供了解决方案。

Google 包不支持开箱即用的控制台应用程序,因此我们必须做一些工作来在代码中手动设置跟踪。