从 Kubernetes pod 中的 Google 个云端点登录到 Stackdriver
Logging to Stackdriver from Google Cloud Endpoints in Kubernetes pod
我在从我的 golang api 登录到 Stackdriver 时遇到问题。我的配置:
- GKE 集群运行在三个计算引擎实例上运行
- 在 GKE 容器集群上启用日志记录和监控
- 转到 ESP 后面的服务
- 在
fluentd
镜像的 kube-system 命名空间 运行 中有三个节点。名称为 fluentd-cloud-logging-xxx-xxx-xxx-default-pool-nnnnnn。
- 当我 运行 我的本地服务(使用 go-swagger 生成)文本条目被发送到
global
stackdriver 日志。但是当我部署到我的 k8s 集群时什么也没有。
我使用的代码如下:
api.Logger = func(text string, args ...interface{}) {
ctx := context.Background()
// Sets your Google Cloud Platform project ID.
projectID := "my-project-name"
// Creates a client.
client, err := logging.NewClient(ctx, projectID)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
// Sets the name of the log to write to.
logName := "tried.various.different.names.with.no.luck"
// Selects the log to write to.
logger := client.Logger(logName)
// Sets the data to log.
textL := fmt.Sprintf(text, args...)
// Adds an entry to the log buffer.
logger.Log(logging.Entry{Payload: textL, Severity: logging.Critical})
// Closes the client and flushes the buffer to the Stackdriver Logging
// service.
if err := client.Close(); err != nil {
log.Fatalf("Failed to close client: %v", err)
}
fmt.Printf("Logged: %v\n", textL)
}
我目前不需要错误报告,因为我只是在评估 - 我很乐意只发送非结构化文本。但不清楚我是否需要做类似 的事情才能得到它?
使用 Stackdriver 日志记录客户端创建的日志条目似乎未归入任何预定义类别,因此很难在日志查看器的基本模式下找到。
尝试通过将查询转换为 advanced filter 来访问日志查看器 "advanced filter interface" 并创建以下过滤器:
logName:"projects/my-project-name/logs/tried.various.different.names.with.no.luck"
至少对我有用。
云中的 Golang 应用程序有类似问题 运行。
要查找 stackdriver 日志,您必须在 Logs Viewer
中指定过滤器 resource.type = "project"
我在从我的 golang api 登录到 Stackdriver 时遇到问题。我的配置:
- GKE 集群运行在三个计算引擎实例上运行
- 在 GKE 容器集群上启用日志记录和监控
- 转到 ESP 后面的服务
- 在
fluentd
镜像的 kube-system 命名空间 运行 中有三个节点。名称为 fluentd-cloud-logging-xxx-xxx-xxx-default-pool-nnnnnn。 - 当我 运行 我的本地服务(使用 go-swagger 生成)文本条目被发送到
global
stackdriver 日志。但是当我部署到我的 k8s 集群时什么也没有。
我使用的代码如下:
api.Logger = func(text string, args ...interface{}) {
ctx := context.Background()
// Sets your Google Cloud Platform project ID.
projectID := "my-project-name"
// Creates a client.
client, err := logging.NewClient(ctx, projectID)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
// Sets the name of the log to write to.
logName := "tried.various.different.names.with.no.luck"
// Selects the log to write to.
logger := client.Logger(logName)
// Sets the data to log.
textL := fmt.Sprintf(text, args...)
// Adds an entry to the log buffer.
logger.Log(logging.Entry{Payload: textL, Severity: logging.Critical})
// Closes the client and flushes the buffer to the Stackdriver Logging
// service.
if err := client.Close(); err != nil {
log.Fatalf("Failed to close client: %v", err)
}
fmt.Printf("Logged: %v\n", textL)
}
我目前不需要错误报告,因为我只是在评估 - 我很乐意只发送非结构化文本。但不清楚我是否需要做类似
使用 Stackdriver 日志记录客户端创建的日志条目似乎未归入任何预定义类别,因此很难在日志查看器的基本模式下找到。
尝试通过将查询转换为 advanced filter 来访问日志查看器 "advanced filter interface" 并创建以下过滤器:
logName:"projects/my-project-name/logs/tried.various.different.names.with.no.luck"
至少对我有用。
云中的 Golang 应用程序有类似问题 运行。
要查找 stackdriver 日志,您必须在 Logs Viewer
resource.type = "project"