目的
在.net核心2.2 REST API上使用Google Cloud Diagnostics,以在两种可能的情况下进行日志记录,跟踪和错误报告:
环境详细信息
说明
在配置Google Cloud Diagnostics时,使用了两个文档来源:
根据上述文档,使用了IWebHostBuilder上的UseGoogleDiagnostics扩展方法,因为它配置了日志记录,跟踪和错误报告中间件。
根据2)链接,下表列出了使用UseGoogleDiagnostics方法时所需的信息:
.net核心配置文件用于为每个部署提供以上信息:
appsettings.json
{
"GCP": {
"ServiceID": "my-service",
"VersionID": "v1"
}
}
appsettings.Development.json
{
"GCP": {
"ID": "my-id"
}
}
基本上,以上内容将呈现以下配置:
return WebHost.CreateDefaultBuilder(args)
.UseGoogleDiagnostics("my-id", "my-service", "v1")
.UseStartup<Startup>();
return WebHost.CreateDefaultBuilder(args)
.UseGoogleDiagnostics(null, "my-service", "v1")
.UseStartup<Startup>();
为了确保我使用的信息正确,我在GCP UI上的两个位置进行了验证:
Service name: my-service Active version: v1
{
insertId: "e6a63a28-1451-4132-ad44-a4447c33a4ac@a1"
jsonPayload: {…}
logName: "projects/xxx%2Fendpoints_log"
receiveTimestamp: "2019-07-11T21:03:34.851569606Z"
resource: {
labels: {
location: "us-central1-a"
method: "v1.xxx.ApiOCRPost"
project_id: "my-id"
service: "my-service"
version: "v1"
}
type: "api"
}
severity: "INFO"
timestamp: "2019-07-11T21:03:27.397632588Z"
}
我是在做错什么还是Google.Cloud.Diagnostics.AspNetCore 3.0.0-beta13上的错误?
在执行服务端点时,对于每个特定的部署,Google Cloud Diagnostics的行为都不同:
我尝试了几种变体,直接在代码中对值进行硬编码等,但是无论我做什么,部署在GKE中的Google Cloud Diagnostics都无法正常工作。
return WebHost.CreateDefaultBuilder(args)
.UseGoogleDiagnostics(null, "my-service", "v1")
.UseStartup<Startup>();
return WebHost.CreateDefaultBuilder(args)
.UseGoogleDiagnostics(null, "my-service", "1")
.UseStartup<Startup>();