如何从监控 API 中获取指标样本
How get a metric sample from monitoring APIs
我仔细看了monitoring API. As far as I have read, it is possible to use gcloud for creating Monitoring Policies and edit the Policies ( Using Aleert API).
然而,从一方面来看,gcloud 似乎只能创建和编辑策略选项,而不能读取此类策略的结果。从这个页面我读到了这个选项:
Creating new policies
Deleting existing policies
Retrieving specific policies
Retrieving all policies
Modifying existing policies
另一方面,我阅读了 result of a failed request
Summary of the result of a failed request to write data to a time series.
所以它在我脑海中敲响了警钟,我确实可以得到一个结果列表,比如在一段时间内所有失败的写入请求。但是怎么办?
拜托,我的直截了当的问题是:我能否以某种方式监听警报事件或获取抛出的警报结果列表 Monitoring API v3?
我发现 tag_firestore_instance 与 firestore 有某种关联,但如何使用它以及我可以搜索哪些信息?我无法在任何地方找到如何使用它。也许是常见的获取(例如 Postman/curl)或来自 gcloud shell。
PS.: 这个问题最初发布在 Google Group 但我被鼓励在这里问。
*** 根据 Alex 的建议进行编辑
我有一个 Angular 页面在监听我的 Firestore 数据库中的文档
export class AppComponent {
public transfers: Observable<any[]>;
transferCollectionRef: AngularFirestoreCollection<any>;
constructor(public auth: AngularFireAuth, public db: AngularFirestore) {
this.listenSingleTransferWithToken();
}
async listenSingleTransferWithToken() {
await this.auth.signInWithCustomToken("eyJ ... CVg");
this.transferCollectionRef = this.db.collection<any>('transfer', ref => ref.where("id", "==", "1"));
this.transfers = this.transferCollectionRef.snapshotChanges().map(actions => {
return actions.map(action => {
const data = action.payload.doc.data();
const id = action.payload.doc.id;
return { id, ...data };
});
});
}
}
所以,我知道至少有一个 reader 从
计数到 return
name: projects/firetestjimis
filter: metric.type = "firestore.googleapis.com/document/read_count"
interval.endTime: 2020-05-07T15:09:17Z
听懂你说的有点困难,但这是我想出来的。
这是可用的 Firestore 指标列表:https://cloud.google.com/monitoring/api/metrics_gcp#gcp-firestore
然后您可以将这些指标类型传递给此 API
https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list
在那个页面上,我使用了右侧的"Try This API"工具并填写了以下内容
name
= projects/MY-PROJECT-ID
filter
= metric.type = "firestore.googleapis.com/api/request_count"
interval.endTime
= 2020-05-05T15:01:23.045123456Z
在 chrome 的检查器中,我可以看到这是该工具发出的 GET
请求:
https://content-monitoring.googleapis.com/v3/projects/MY-PROJECT-ID/timeSeries?filter=metric.type%20%3D%20%22firestore.googleapis.com%2Fapi%2Frequest_count%22&interval.endTime=2020-05-05T15%3A01%3A23.045123456Z&key=API-KEY-GOES-HERE
编辑:
上面返回了 200,但是 json 负载是空的。
我们还需要添加以下条目以获取要填充的数据
interval.startTime
= 2020-05-04T15:01:23.045123456Z
也可以尝试到这里 console.cloud.google.com/monitoring/metrics-explorer 并在 "Find resource type and metric" 框中键入 firestore
并查看 google 自己的仪表板是否有数据填充. (这是为了确认那里确实有数据供您获取)
我仔细看了monitoring API. As far as I have read, it is possible to use gcloud for creating Monitoring Policies and edit the Policies ( Using Aleert API).
然而,从一方面来看,gcloud 似乎只能创建和编辑策略选项,而不能读取此类策略的结果。从这个页面我读到了这个选项:
Creating new policies
Deleting existing policies
Retrieving specific policies
Retrieving all policies
Modifying existing policies
另一方面,我阅读了 result of a failed request
Summary of the result of a failed request to write data to a time series.
所以它在我脑海中敲响了警钟,我确实可以得到一个结果列表,比如在一段时间内所有失败的写入请求。但是怎么办?
拜托,我的直截了当的问题是:我能否以某种方式监听警报事件或获取抛出的警报结果列表 Monitoring API v3?
我发现 tag_firestore_instance 与 firestore 有某种关联,但如何使用它以及我可以搜索哪些信息?我无法在任何地方找到如何使用它。也许是常见的获取(例如 Postman/curl)或来自 gcloud shell。
PS.: 这个问题最初发布在 Google Group 但我被鼓励在这里问。
*** 根据 Alex 的建议进行编辑
我有一个 Angular 页面在监听我的 Firestore 数据库中的文档
export class AppComponent {
public transfers: Observable<any[]>;
transferCollectionRef: AngularFirestoreCollection<any>;
constructor(public auth: AngularFireAuth, public db: AngularFirestore) {
this.listenSingleTransferWithToken();
}
async listenSingleTransferWithToken() {
await this.auth.signInWithCustomToken("eyJ ... CVg");
this.transferCollectionRef = this.db.collection<any>('transfer', ref => ref.where("id", "==", "1"));
this.transfers = this.transferCollectionRef.snapshotChanges().map(actions => {
return actions.map(action => {
const data = action.payload.doc.data();
const id = action.payload.doc.id;
return { id, ...data };
});
});
}
}
所以,我知道至少有一个 reader 从
计数到 returnname: projects/firetestjimis
filter: metric.type = "firestore.googleapis.com/document/read_count"
interval.endTime: 2020-05-07T15:09:17Z
听懂你说的有点困难,但这是我想出来的。
这是可用的 Firestore 指标列表:https://cloud.google.com/monitoring/api/metrics_gcp#gcp-firestore
然后您可以将这些指标类型传递给此 API https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list
在那个页面上,我使用了右侧的"Try This API"工具并填写了以下内容
name
= projects/MY-PROJECT-ID
filter
= metric.type = "firestore.googleapis.com/api/request_count"
interval.endTime
= 2020-05-05T15:01:23.045123456Z
在 chrome 的检查器中,我可以看到这是该工具发出的 GET
请求:
https://content-monitoring.googleapis.com/v3/projects/MY-PROJECT-ID/timeSeries?filter=metric.type%20%3D%20%22firestore.googleapis.com%2Fapi%2Frequest_count%22&interval.endTime=2020-05-05T15%3A01%3A23.045123456Z&key=API-KEY-GOES-HERE
编辑: 上面返回了 200,但是 json 负载是空的。 我们还需要添加以下条目以获取要填充的数据
interval.startTime
= 2020-05-04T15:01:23.045123456Z
也可以尝试到这里 console.cloud.google.com/monitoring/metrics-explorer 并在 "Find resource type and metric" 框中键入 firestore
并查看 google 自己的仪表板是否有数据填充. (这是为了确认那里确实有数据供您获取)