标签: google-cloud-stackdriver

GCP Stackdriver Monitoring 累积自定义指标开始和结束时间错误

编辑:我想我想出了这个问题。只有开始时间需要保持不变,直到需要重置累计数字,所以在我的情况下,一天的开始将在午夜之后重置,但结束时间将始终是当前时间。我仍在测试这个,所以我会在得到更多结果后立即关闭这个问题。

EDIT2:因此,将时间间隔设置为每天开始时开始并在发送时结束,图表仍然显示每次调用 client.create_time_series 时的峰值。这是我正在寻找的示例(忽略右轴,数字应该更高,但我的 photoshop 技能不是很好): 在此处输入图片说明 这就是我目前得到的: 在此处输入图片说明

在解释错误之前,以下是我尝试使用此自定义监控指标实现的目标。我的程序每隔一段时间记录一些处理过的数据,我想查看每天处理的总数。所以我认为累积指标是正确的选择,每天重置间隔。问题是我不确定如何实现这一目标。

这就是我正在做的事情。每次处理一些新数据时,我都会使用client.create_time_series(project_name, [series])where将其添加到指标中,其中[series]包含point.value.int64_value当时处理的数据数量中的一个。现在我的问题是间隔。我认为间隔应该是每天的开始和结束时间,我认为在一天结束时,指标会从 0 开始。所以我这样做了:

point                             = series.points.add()
point.value.int64_value           = num
startDay                          = time.mktime(datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0).timetuple())
endDay                            = time.mktime(datetime.datetime.now().replace(hour=23, minute=59, second=59, microsecond=0).timetuple())
point.interval.start_time.seconds = int(startDay)
point.interval.start_time.nanos   = int((startDay - point.interval.start_time.seconds) * 10**9)
point.interval.end_time.seconds   = int(endDay)
point.interval.end_time.nanos     = int((endDay - point.interval.end_time.seconds) * 10**9)
client.create_time_series(project_name, [series])
Run Code Online (Sandbox Code Playgroud)

我得到这个错误:

400 Field timeSeries[0].points[0].interval.end had an invalid value of \"2018-10-04T16:59:59-07:00\": The end time is too far in the future. A point cannot …
Run Code Online (Sandbox Code Playgroud)

monitoring metrics python-3.x google-cloud-stackdriver

5
推荐指数
0
解决办法
742
查看次数

Fluentd 在单行中格式化 Java 异常日志

我在 GCP 中部署了一个 java 应用程序。使用 fluentd 将该日志文件指向 Stackdriver 日志记录。

Java exception log在单独的行中格式化。因此 Stackdriver 日志记录无法将其捕获为 error/warning 。

我需要在一行中格式化我的 java 应用程序异常跟踪。 需要区分信息、错误、警告。

我流畅的配置:

<source>
  type tail
  format none
  path /home/app/*-local-app-output.log
  pos_file /var/lib/google-fluentd/pos/local-app.pos
  read_from_head true
  tag local-app
</source>
Run Code Online (Sandbox Code Playgroud)

也试过

  format multiline
  format_firstline /\d{4}-\d{1,2}-\d{1,2}/
  format1 /^(?<time>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}) \[(?<thread>.*)\] (?<level>[^\s]+)(?<message>.*)/
  time_format %b %d %H:%M:%S
Run Code Online (Sandbox Code Playgroud)

当前显示输出: 在此处输入图片说明

而在 Kubernetes 引擎中部署相同的应用程序,它有单独的日志类别字段: info , warn , error , critical 。

谁可以帮我这个事 ?

fluentd google-cloud-stackdriver

5
推荐指数
0
解决办法
440
查看次数

如何使用API​​或Terraform模板在GCP中创建StackDriver工作区

我想通过使用脚本,Terraform模板或API以编程方式创建Stackdriver Workpace,因为我需要避免手动为每个项目创建Stackdriver工作区的手动步骤。它应该是terraform或API的一部分,以便为所需的Stackdriver监控项目自动创建它

谁能提供相同的解决方案或建议。

谢谢。

阿肖克

google-cloud-platform stackdriver google-cloud-stackdriver

5
推荐指数
1
解决办法
488
查看次数

基于Stackdriver Logs的指标-对齐期间的总和

我们有一些stackdriver日志条目,如下所示:

{
  insertId:  "xyz"  
  jsonPayload: {
    countOfApples:  100   
    // other stuff
    }
  // other stuff
}
Run Code Online (Sandbox Code Playgroud)

我们希望能够建立一个基于对数的指标,该指标可以告诉我们过去10分钟(或任何调整期)内看到的苹果总数,但是到目前为止,我一直找不到找到这种方法的方法。尽管阅读了文档。

尝试1:

过滤指定的那些日志条目,countOfApples并创建一个带有标签的“ 计数器”指标countOfApples

完成此操作后,我可以根据高于或低于特定值进行过滤countOfApples。我看不到基于此值进行汇总的方法。所有聚合选项似乎都适用于在对齐期间与过滤器匹配的日志条目数

尝试2:

筛选指定位置的那些日志条目,countOfApples并创建一个“字段名称”设置为的分配指标jsonPayload.CountOfApples

这似乎越来越近了,因为我现在可以在指标浏览器中看到苹果计数,但是我找不到正确的Aligner / Reducers组合来只给我这段时间内的苹果总数?选择Aligner:delta和Reducer:sum会导致错误消息:

此聚合不会为折线图类型产生有效的数据类型。单击此处将aligner转换为sum,reducer转换为99%

是否可以仅监视每个对齐周期中所有这些值的总和?

google-cloud-platform stackdriver google-cloud-stackdriver

5
推荐指数
1
解决办法
528
查看次数

在Firebase控制台中的哪里可以找到Stackdriver?

我在本文中已经读到Firestore已启动Stackdriver(处于beta版),因此我们可以近乎实时地监视Cloud Firestore的读取,写入和删除操作,但是我在Firebase控制台中的哪里可以找到它?

firebase google-cloud-stackdriver google-cloud-firestore

5
推荐指数
1
解决办法
518
查看次数

如何使用stdout Go 1.11记录与跟踪ID相关的Stackdriver日志消息

我在Go 1.11运行时中使用Google App Engine标准环境。Go 1.11的文档说:“使用stdout编写输出的应用程序日志,使用stderr编写错误的应用程序日志”。从Go 1.9指南进行的迁移还建议不要直接调用Google Cloud Logging库,而应通过stdout进行日志记录。 https://cloud.google.com/appengine/docs/standard/go111/writing-application-logs

考虑到这一点,我编写了一个小的HTTP服务(下面的代码),以尝试使用JSON输出到stdout的日志记录到Stackdriver。

当我打印纯文本消息时,它们将按预期显示在日志查看器面板中的textPayload。当我传递JSON字符串时,它们会显示在下方jsonPayload。到目前为止,一切都很好。

因此,我severity在输出字符串中添加了一个字段,然后Stackdriver Log Viewer根据已分级的日志记录NOTICE,WARNING等成功地对消息进行了分类 。https://cloud.google.com/logging/docs/reference/v2/rest/v2/登录项

文档说要设置trace标识符,以将日志条目与原始请求日志相关联。跟踪ID是从X-Cloud-Trace-Context容器设置的标头中提取的。

使用本地模拟 curl -v -H 'X-Cloud-Trace-Context: 1ad1e4f50427b51eadc9b36064d40cc2/8196282844182683029;o=1' http://localhost:8080/

但是,这不会导致消息按请求进行线程传递,而是将该trace属性显示在jsonPayload日志的对象中。(见下文)。

请注意,这severity已按预期解释,并且未出现在中jsonPayload。我曾预期会发生同样的事情trace,但似乎未处理。

如何在原始请求日志消息中实现嵌套消息?(这必须在Go 1.11上使用stdout完成,因为我不希望直接使用Google Cloud日志记录程序包进行记录)。

GAE从正在运行的进程中解析stdout流的确切方式是什么?(在GCE上的VM设置指南中,有一些关于安装代理程序以充当Stackdriver Logging的渠道的信息-GAE是否已安装?)

app.yaml文件如下所示:

runtime: go111

handlers:
- url: /.*
  script: auto



package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
    "strings"
)

var projectID = "glowing-market-234808"

func parseXCloudTraceContext(t string) (traceID, spanID, traceTrue string) …
Run Code Online (Sandbox Code Playgroud)

google-app-engine go stackdriver google-cloud-stackdriver

5
推荐指数
1
解决办法
450
查看次数

Python Google Cloud Function记录严重性和重复项

我正在研究一个在Python运行时中运行的简单Google Cloud Function,并且我希望从Python程序到Stackdriver Logging进行一些简单的日志记录。

根据Google的启动指南,此操作应该很简单 https://cloud.google.com/logging/docs/setup/python

我设置了一个简单的测试功能来隔离我看到的日志记录问题

import google.cloud.logging

def logging_test_background(data, context):

    logging_client = google.cloud.logging.Client()
    logging_client.setup_logging()

    logging.info("This should be info")
    logging.debug("This should be debug")
    logging.warning("This should be warning")
    logging.error("This should be error")
Run Code Online (Sandbox Code Playgroud)

在Stackdriver Logging中,一切变得混乱。 在此处输入图片说明 1.信息被复制为错误2.调试未通过3.警告被复制,但是两者均为错误记录级别4.错误被复制

我的配置中缺少什么吗?

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

5
推荐指数
1
解决办法
178
查看次数

如何将 Stackdriver 图表放入 csv 文件?

我正在使用 Stackdriver 监控 GCP 中 Kubernetes 中部署的集群。在 Stackdriver 监控概述选项卡中,我可以看到不同的图表,显示资源利用率与时间的关系。我想将此图表转换为 csv 文件,其中包含每秒的资源利用率。有人以前做过这个或者知道如何做吗?

monitoring metrics kubernetes google-cloud-stackdriver

5
推荐指数
1
解决办法
1355
查看次数

数据流项目中的 stackdriver 监控 api

我刚刚开始在 Google Cloud Dataflow 上使用 Apache Beam。我有一个使用计费帐户设置的项目。我计划使用该项目的唯一目的是: 1. 数据流 - 用于所有数据处理 2. pubsub - 用于导出 Stackdriver 日志以供 Datadog 使用

现在,当我写这篇文章时,我当前没有运行任何数据流作业。

回顾过去一个月,我发现数据流成本约为 15 美元,Stackdriver Monitor API 成本约为 18 美元。看起来 Stackdriver Monitor API 的固定价格接近 1.46 美元/天。

我很好奇如何减轻这种情况。我不认为我想要或不需要 Stackdriver Monitoring。是强制性的吗?此外,虽然我觉得我没有运行任何东西,但在过去的一个小时里我看到了这一点:

在此输入图像描述

所以我想问题是这些: 1. 这些调用是什么?2. 是否可以禁用数据流的 Stackdriver 监控或以其他方式降低成本?

google-cloud-platform google-cloud-dataflow stackdriver google-cloud-stackdriver

5
推荐指数
1
解决办法
807
查看次数

关于指标的 GCP Stackdriver 警报并非不存在

GCP 的 Stackdriver 中有一些指标,如 fe serviceruntime.googleapis.com/quota/exceeded,出现问题时会出现,如果没有更多问题,则不存在(不是 0)。

问题是我无法设置警报以自动解决,因为当问题解决时,此指标的数据不存在。

如何设置警报以使用这些类型的指标自动解决?

公制

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

5
推荐指数
1
解决办法
167
查看次数