标签: google-cloud-stackdriver

在哪里可以查看Google App Engine中的日志?

我是GAE的新手,因此对于GAE的专家来说,这个问题可能很容易。

我有Flexible App Engine,MySQL 2nd Gen 5.7的SQL实例

我已经将我的laravel应用托管在GAE上,并按照以下教程操作:在Google App Engine灵活环境中运行Laravel

我无法正确获取首页,出现500错误,我的应用程序URL:关于蔬菜

我想像在本地机器上那样检查错误,但是我无法获取正确的日志。

我发现它给出了来自https://console.cloud.google.com/logs/viewer?project=project-idURL的500响应,但是我无法获得错误的正确堆栈跟踪,我在这里得到的唯一是某种JSON数据。

此外,我还想从服务器上下载日志文件,以便可以手动检查日志并解决问题,但是!!我也找不到。

在这种情况下,您能帮我什么忙吗?

php google-app-engine google-cloud-platform google-cloud-stackdriver laravel-5.6

4
推荐指数
1
解决办法
2678
查看次数

Google Cloud Deployment Manager无法使用权​​限被拒绝的“ logging.v2.sink”创建部署

logging.v2.sink使用Google Cloud Deployment Manager进行了部署,但是由于拒绝权限导致部署失败。

Google Cloud Deployment Manager的这个logink示例中也发生了问题。

结果如下:

- code: RESOURCE_ERROR
  location: /deployments/my-project-id/resources/sink
  message: 
{   
    "ResourceType": "logging.v2.sink",
    "ResourceErrorCode": "403",
    "ResourceErrorMessage": {
        "code": 403,
        "message": "The\n    caller does not have permission",
        "status": "PERMISSION_DENIED",
        "statusMessage": "Forbidden",
        "requestPath": "https://logging.googleapis.com/v2/projects/my-project-id/sinks",
        "httpMethod": "POST"   
    }
}
Run Code Online (Sandbox Code Playgroud)

部署由所有者角色执行,此外,我可以使用cli创建日志接收器。 gcloud在本地安装的是最新版本(v217.0.0)。

为什么会发生此问题?

google-cloud-pubsub google-cloud-stackdriver google-deployment-manager

3
推荐指数
1
解决办法
255
查看次数

用于监控 Google Cloud pubsub 中未送达消息的 REST API

我想实现一项服务来监视未送达的消息并在达到阈值或进一步处理时发送通知。

我已经浏览了 Stackdriver。它为我提供了监控和警报,它仅提供获取 metricDescriptor 的 API,但它不提供获取未传递消息的 API,如您在Stackdriver Monitoring API 中看到的。

实际上是否有提供的 API 来获取指标值?

google-cloud-platform google-cloud-pubsub stackdriver google-cloud-stackdriver

3
推荐指数
1
解决办法
567
查看次数

如何从 python 按时间戳过滤 GCP stackdriver 日志

我正在尝试从 python 模块获取 GCP stackdriver 日志。我可以过滤 request_id 和 user 的日志

但是当我尝试获取两个时间段之间的日志时,它给出了我的错误。

import json
import sys
from google.cloud import logging
from google.cloud.logging import DESCENDING
from google.cloud import bigquery

#stackdriver client object
logging_client = logging.Client()

FILTER="logName:projects/cognitedata-europe-west1-1/logs/stdout AND timestamp>="+sys.argv[3]
results_iterator = logging_client.list_entries(filter_=FILTER,projects=PROJECT_IDS,order_by=DESCENDING,page_size=1000)
Run Code Online (Sandbox Code Playgroud)

我使用以下模式来提供时间。

timestamp:sys.argv[3]
Run Code Online (Sandbox Code Playgroud)
timestamp=sys.argv[3]
Run Code Online (Sandbox Code Playgroud)
timestamp>sys.argv[3]
Run Code Online (Sandbox Code Playgroud)
timestamp>=sys.argv[3]
Run Code Online (Sandbox Code Playgroud)

但注意到解决了我的问题。

我将 sys.argv 3的输入时间设置为“2019-09-28T03:28:04.189Z”

我的要求是从时间戳中过滤数据 在此输入图像描述

但在 GCP 堆栈驱动程序记录器 UI 中,它给出了两者的结果

timestamp:"2019-09-28T03:28:04.189Z"
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

timestamp>="2019-09-28T03:28:04.189Z" AND timestamp<="2019-09-28T03:30:39.189Z" 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python google-cloud-platform stackdriver google-cloud-stackdriver

3
推荐指数
1
解决办法
3494
查看次数

监控 GKE 节点中 CPU 和内存的百分比

我想使用 Stackdriver 监控来监视我的 GKE 节点的 CPU/mem % 使用率。

但是,在浏览 Stackdriver Monitoring UI 时,似乎没有任何此类选项可用(就百分比而言)。

另一方面,对于(似乎是)绝对内存使用,似乎有 2 个极其相似的指标(它们的描述是相同的)。(附截图)。

有没有人知道如何提供 GKE 节点上使用的内存和 CPU 的百分比?(不是容器)

在此处输入图片说明

在此处输入图片说明

monitoring google-kubernetes-engine stackdriver google-cloud-monitoring google-cloud-stackdriver

3
推荐指数
1
解决办法
1183
查看次数

Google Stackdriver - 如何在一个视图中显示多个容器的日志?

我目前正在使用 Google Stackdriver(新布局!)来调查我的日志记录。就我而言,有三个服务相互通信。我很乐意看到他们以最方便的方式以我的信息记录的形式彼此之间进行通信。

FooService > BarService > SnickerService

现状

目前我只能看到其中一项服务的日志。因此,我开始打开三个浏览器选项卡并打开所有三个提到的服务日志。现在我找出FooService开始调用的时间戳/范围BarService。这个时间范围我适用于其他剩余的两项服务。这样我就可以了解流程如何在这些服务之间分配。

然而这种方法每次设置都非常尴尬

这让我想到一个问题:我是否可以将三个容器的日志记录放入一个 Stackdriver 视图中?

在日志查询中我看到这个字段(例如 FooService)

resource.labels.pod_name="fooservice-bd4c9bf4d-nv4k2"
Run Code Online (Sandbox Code Playgroud)

问题

  • AND这里有办法做手术吗?
  • 还有一种方法可以“搜索”pod吗?目前,我总是必须深入研究我的工作负载并挖掘 pod id(上面的示例:bd4c9bf4d-nv4k2),以便我可以在查询中使用它。通过这样做,我只需点击View LogsGoogle Cloud Console 就会更快。所以恕我直言,这并不是一个快速的方法。

google-cloud-platform google-cloud-stackdriver

3
推荐指数
1
解决办法
1595
查看次数

用于列出通知通道的 Gcloud 命令不适用于过滤器

我正在尝试使用gcloud基于displayName 的命令来过滤为堆栈驱动程序警报通知创建的现有通道。通道的类型为电子邮件和 webhook,以下是电子邮件通知通道的结构:

creationRecord:
  mutateTime: '2021-03-16T14:28:59.926805618Z'
displayName: 'Test Notifications Channel'
enabled: true
labels:
  email_address: 1234fcb0.XXXPortal.onmicrosoft.com@ayd.teams.ms
mutationRecords:
- mutateTime: '2021-03-16T14:28:59.926805618Z'
name: projects/xxx/notificationChannels/13657854696054677020
type: email
Run Code Online (Sandbox Code Playgroud)

我正在使用以下 Gcloud 命令列出该频道以查明它是否确实存在。

gcloud alpha monitoring channels list --filter='displayName="Test Notifications Channel"' --format='value(name)' --project=xxx
Run Code Online (Sandbox Code Playgroud)

输出是:

警告:任何资源中都不存在以下过滤器键:displayName

该命令的beta版本也给出了相同的结果。我需要通过displayName查明频道是否存在。

注意:在 --filter='type="email"' 中有效,但我不要求这样做。

我可以使用哪个 gcloud 命令和过滤器来解决此问题?

更新

感谢您在下面的回复,我发现过滤器确实适用于上述代码,正如正确指出的那样,有一些尾随空格。我实际上一直在尝试的是 displayNameTest Notifications Channel Default组成。

但在我只给出的过滤器中,省略了默认值:

gcloud alpha monitoring channels list --filter='displayName="Test Notifications Channel"' --format='value(name)' --project=xxx
Run Code Online (Sandbox Code Playgroud)

但我的要求是打印以displayName测试通知通道开头的所有通道,所以我想要这样的东西:

gcloud alpha monitoring channels …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform gcloud google-cloud-monitoring google-cloud-stackdriver

3
推荐指数
1
解决办法
3871
查看次数

Google Stackdrive自定义指标-数据保留期

我正在使用GCP Stackdrive自定义指标,并创建了一些仪表板图来显示系统上的流量。问题在于图形系统将数据保留了几周,而不是永远。

从Stackdrive 文档中

有关自定义指标数量和活动时间序列数量的限制以及数据保留期限,请参阅配额和限制。如果您希望将指标数据保持在保留期限之外,则必须手动将数据复制到另一个位置,例如Cloud Storage或BigQuery。

让我们决定使用Cloud Storage作为容器来长期存储数据。

问题:

  1. 此“手动数据副本”如何工作?只需将相同的数据写入两个位置(Google存储和Stackdrive)?
  2. stackdrive如何连接存储并生成图形?

google-cloud-storage google-cloud-platform stackdriver google-cloud-stackdriver

2
推荐指数
1
解决办法
107
查看次数

显示 Google Cloud Platform 中的日志大小

我想知道项目日志的大小,以便删除最大的日志。

gcloud logging logs list可以列出我的所有项目日志。但是,没有显示尺寸。

如何使用gcloudGoogle Cloud Console 列出项目日志的大小?

logging google-cloud-platform gcloud stackdriver google-cloud-stackdriver

2
推荐指数
1
解决办法
3961
查看次数

Stackdriver 日志记录 - 为什么我的负载在运行时 V8 中没有正确显示

我添加了一条简单的日志消息,然后在 Stackdriver 中看到了该日志。
但有效负载不会拆分为单独的值。
问题在于有效负载显示为包含消息和有效负载的一大串。
我需要一个值列表,以便我可以查询 ex isValid 或内容。

如何将有效负载获取到 Stackdriver 日志记录中的值列表?

https://developers.google.com/apps-script/guides/logging#using_cloud_logging

// Log a JSON object at a DEBUG level. The log is labeled
  // with the message string in the log viewer, and the JSON content
  // is displayed in the expanded log structure under "jsonPayload".
  var parameters = {
      isValid: true,
      content: 'some string',
      timestamp: new Date()
  };
  console.log({message: 'Function Input', initialData: parameters});
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

更新
如果将项目降级到 ["runtimeVersion": "DEPRECATED_ES5"] 有效负载工作正常。
如果我在新的“运行时 Chrome V8”中运行项目,则有效负载不起作用。

logging google-apps-script stackdriver google-cloud-stackdriver

2
推荐指数
1
解决办法
254
查看次数