我是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
我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
我想实现一项服务来监视未送达的消息并在达到阈值或进一步处理时发送通知。
我已经浏览了 Stackdriver。它为我提供了监控和警报,它仅提供获取 metricDescriptor 的 API,但它不提供获取未传递消息的 API,如您在Stackdriver Monitoring API 中看到的。
实际上是否有提供的 API 来获取指标值?
google-cloud-platform google-cloud-pubsub stackdriver google-cloud-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
我想使用 Stackdriver 监控来监视我的 GKE 节点的 CPU/mem % 使用率。
但是,在浏览 Stackdriver Monitoring UI 时,似乎没有任何此类选项可用(就百分比而言)。
另一方面,对于(似乎是)绝对内存使用,似乎有 2 个极其相似的指标(它们的描述是相同的)。(附截图)。
有没有人知道如何提供 GKE 节点上使用的内存和 CPU 的百分比?(不是容器)
monitoring google-kubernetes-engine stackdriver google-cloud-monitoring google-cloud-stackdriver
我目前正在使用 Google Stackdriver(新布局!)来调查我的日志记录。就我而言,有三个服务相互通信。我很乐意看到他们以最方便的方式以我的信息记录的形式彼此之间进行通信。
FooService > BarService > SnickerService
目前我只能看到其中一项服务的日志。因此,我开始打开三个浏览器选项卡并打开所有三个提到的服务日志。现在我找出FooService开始调用的时间戳/范围BarService。这个时间范围我适用于其他剩余的两项服务。这样我就可以了解流程如何在这些服务之间分配。
然而这种方法每次设置都非常尴尬
这让我想到一个问题:我是否可以将三个容器的日志记录放入一个 Stackdriver 视图中?
在日志查询中我看到这个字段(例如 FooService)
resource.labels.pod_name="fooservice-bd4c9bf4d-nv4k2"
Run Code Online (Sandbox Code Playgroud)
AND这里有办法做手术吗?View LogsGoogle Cloud Console 就会更快。所以恕我直言,这并不是一个快速的方法。我正在尝试使用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 命令和过滤器来解决此问题?
感谢您在下面的回复,我发现过滤器确实适用于上述代码,正如正确指出的那样,有一些尾随空格。我实际上一直在尝试的是 displayName由Test 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
我正在使用GCP Stackdrive自定义指标,并创建了一些仪表板图来显示系统上的流量。问题在于图形系统将数据保留了几周,而不是永远。
从Stackdrive 文档中:
有关自定义指标数量和活动时间序列数量的限制以及数据保留期限,请参阅配额和限制。如果您希望将指标数据保持在保留期限之外,则必须手动将数据复制到另一个位置,例如Cloud Storage或BigQuery。
让我们决定使用Cloud Storage作为容器来长期存储数据。
google-cloud-storage google-cloud-platform stackdriver google-cloud-stackdriver
我想知道项目日志的大小,以便删除最大的日志。
我gcloud logging logs list可以列出我的所有项目日志。但是,没有显示尺寸。
如何使用gcloudGoogle Cloud Console 列出项目日志的大小?
logging google-cloud-platform gcloud stackdriver google-cloud-stackdriver
我添加了一条简单的日志消息,然后在 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