2017-01-13 18 views
6

Zaplanowałem śledzenie użycia BigQuery za pomocą interfejsu API StackDriver i jest ładny tutorial na temat konfiguracji tego here. Jednak kwerendy tutaj używać deprecated v1 API i available documentation jest nadal dla v1.Jak zapytać o użycie BigQuery za pomocą v2 interfejsu API StackDriver?

W konsoli BigQuery, V2 zapewnia tylko następujące pola:

logName 
timestamp 
severity 
insertId 
resource 
resource.type 
resource.labels 
resource.labels.project_id 
httpRequest 
httpRequest.requestMethod 
httpRequest.requestUrl 
httpRequest.requestSize 
httpRequest.status 
httpRequest.responseSize 
httpRequest.userAgent 
httpRequest.remoteIp 
httpRequest.serverIp 
httpRequest.referer 
httpRequest.cacheHit 
httpRequest.cacheValidatedWithOriginServer 
httpRequest.latency 
httpRequest.cacheLookup 
httpRequest.cacheFillBytes 
operation 
operation.id 
operation.producer 
operation.first 
operation.last 
protopayload_google_cloud_audit_auditlog 
protopayload_google_cloud_audit_auditlog.serviceName 
protopayload_google_cloud_audit_auditlog.methodName 
protopayload_google_cloud_audit_auditlog.resourceName 
protopayload_google_cloud_audit_auditlog.numResponseItems 
protopayload_google_cloud_audit_auditlog.status 
protopayload_google_cloud_audit_auditlog.status.code 
protopayload_google_cloud_audit_auditlog.status.message 
trace 
sourceLocation 
sourceLocation.file 
sourceLocation.line 
sourceLocation.function 

teraz nie ma totalBilledBytes pola, które zostało użyte w zapytaniach przykład v1 obliczyć zużycie. Jak można sprawdzić koszt użytkowania za pomocą v2 interfejsu API?

Odpowiedz

0

Istnieje dobry tutorial do sprawdzania dzienników kontroli w celu uzyskania tych informacji. Oto przykład zapytania z tego miejsca (zakłada, że ​​już wyeksportowałeś dane dziennika kontroli do BigQuery).

SELECT 
    query_date, 
    ROUND(((total_bytes*5)/1000000000000),2) Cost_In_Dollars 
FROM (
    SELECT 
    STRFTIME_UTC_USEC(metadata.timestamp,"%Y-%m-%d") AS query_date, 
    SUM(protoPayload.serviceData.jobCompletedEvent.job.jobStatistics.totalBilledBytes) AS total_bytes 
    FROM 
    TABLE_DATE_RANGE(AuditLogs.cloudaudit_googleapis_com_data_access_, DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY'), CURRENT_TIMESTAMP()) 
    WHERE 
    protoPayload.serviceData.jobCompletedEvent.eventName = 'query_job_completed' 
    GROUP BY 
    query_date) 
+0

Co powiesz na poziom fakturowania? czy jest już uwzględniony w sumieBilledBytes? –

+0

tak, to jest samouczek, do którego linkowałem w pytaniu, i jak wspomniano, używa wycofanej wersji 1 API – hoju

+0

@MikhailBerlyant na przykład w wersji 2 pole "metadata.timestamp" jest teraz tylko "znacznikiem czasu" i "totalBilledBytes" nie już istnieje – hoju