Consulta de estatísticas de log de consulta lenta
Função
Essa API é usada para consultar estatísticas de log de consulta lenta. Antes de chamar essa API:
- Saiba como autorizá-la e autenticá-la.
- Obtenha a região e o ponto de extremidade necessários.
URI
POST /v3/{project_id}/instances/{instance_id}/slow-logs/statistics
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
ID do projeto de um locatário numa região. Para obter esse valor, consulte Obtenção de um ID de projeto. |
instance_id |
Sim |
String |
ID da instância, que é compatível com o formato UUID. |
Parâmetros de solicitação
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
X-Auth-Token |
Sim |
String |
Token do usuário. Para obter esse valor, chame a API do IAM para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é o valor do token. |
X-Language |
Não |
String |
Tipo de linguagem da solicitação. O valor padrão é en-us. Valores:
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
limit |
Não |
Integer |
Número de registros (resultados da consulta) exibidos em cada página. O número varia de 1 a 100. O valor padrão é 10. |
offset |
Não |
Integer |
Deslocamento do índice. O valor padrão é 0, indicando que a consulta começa a partir da primeira parte dos dados. |
node_id |
Sim |
String |
ID do nó. |
type |
Não |
String |
Tipo de instrução. Se esse parâmetro for deixado em branco, todos os tipos de instrução serão consultados. Valores enumerados:
|
database |
Não |
String |
Nome do banco de dados. Ele não pode conter caracteres especiais, como < > &. |
start_time |
Sim |
String |
Hora de início no formato aaaa-mm-ddThh:mm:ssZ. T é o separador entre o calendário e a notação horária do tempo. Z indica o deslocamento do fuso horário. Por exemplo, no fuso horário de Pequim, o deslocamento é +0800. |
end_time |
Sim |
String |
Hora de término no formato "aaaa-mm-ddThh:mm:ssZ". T é o separador entre o calendário e a notação horária do tempo. Z indica o deslocamento do fuso horário. Por exemplo, no fuso horário de Pequim, o deslocamento é +0800. Somente logs de consulta lenta gerados no mês passado podem ser consultados. |
sort |
Não |
String |
Campo de classificação.
|
order |
Não |
String |
Sequência de classificação. O valor padrão é desc. Valores enumerados:
|
Parâmetros de resposta
Código de status: 200
Parâmetro |
Tipo |
Descrição |
---|---|---|
slow_log_list |
Array of ShowSlowLogStatisticsItem objects |
Lista de estatísticas de log de consulta lenta. |
total_count |
Integer |
Total de registros. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
client_ip |
String |
Endereço IP. |
count |
String |
Número de execuções. |
database |
String |
Banco de dados ao qual pertencem os logs de consulta lenta. |
lock_time |
String |
Tempo médio de espera de bloqueio. |
node_id |
String |
ID do nó. |
query_sample |
String |
Sintaxe de execução. |
rows_examined |
Integer |
Número médio de linhas digitalizadas. |
rows_sent |
Integer |
Número médio de linhas contidas em um resultado. |
time |
String |
Duração média da execução. |
type |
String |
Tipo de instrução. |
users |
String |
Conta. |
Código de status: 400
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_code |
String |
Código de erro. |
error_msg |
String |
Mensagem de erro. |
Código de status: 500
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_code |
String |
Código de erro. |
error_msg |
String |
Mensagem de erro. |
Exemplo de solicitação
Consulta de estatísticas de log de consulta lenta
POST https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/6754902da1f447269c6979b0590102a5in07/slow-logs/statistics { "limit" : 10, "offset" : 0, "node_id" : "4006312b96c541749d735c20e86dd169no07", "type" : null, "database" : null, "start_time" : "2024-08-16T14:37:00+0800", "end_time" : "2024-08-16T16:51:22+0800", "sort" : null, "order" : "desc" }
Exemplo de resposta
Código de status: 200
Bem-sucedido.
{ "slow_log_list" : [ { "node_id" : "4006312b96c541749d735c20e86dd169no07", "count" : "1 (100.00%)", "time" : "11.00014 s", "lock_time" : "0.00000 s", "rows_sent" : 1, "rows_examined" : 1, "database" : "", "users" : "root", "query_sample" : "select sleep(N);", "client_ip" : "localhost", "type" : "SELECT" } ], "total_count" : 1 }
Exemplo de código SDK
O exemplo de código SDK é o seguinte.
Java
Consulta de estatísticas de log de consulta lenta
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.gaussdb.v3.region.GaussDBRegion; import com.huaweicloud.sdk.gaussdb.v3.*; import com.huaweicloud.sdk.gaussdb.v3.model.*; public class ShowSlowLogStatisticsSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); GaussDBClient client = GaussDBClient.newBuilder() .withCredential(auth) .withRegion(GaussDBRegion.valueOf("<YOUR REGION>")) .build(); ShowSlowLogStatisticsRequest request = new ShowSlowLogStatisticsRequest(); request.withInstanceId("{instance_id}"); ShowSlowLogStatisticsRequestBody body = new ShowSlowLogStatisticsRequestBody(); body.withOrder("desc"); body.withEndTime("2024-08-16T16:51:22+0800"); body.withStartTime("2024-08-16T14:37:00+0800"); body.withNodeId("4006312b96c541749d735c20e86dd169no07"); body.withOffset(0); body.withLimit(10); request.withBody(body); try { ShowSlowLogStatisticsResponse response = client.showSlowLogStatistics(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
Python
Consulta de estatísticas de log de consulta lenta
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkgaussdb.v3.region.gaussdb_region import GaussDBRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkgaussdb.v3 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = GaussDBClient.new_builder() \ .with_credentials(credentials) \ .with_region(GaussDBRegion.value_of("<YOUR REGION>")) \ .build() try: request = ShowSlowLogStatisticsRequest() request.instance_id = "{instance_id}" request.body = ShowSlowLogStatisticsRequestBody( order="desc", end_time="2024-08-16T16:51:22+0800", start_time="2024-08-16T14:37:00+0800", node_id="4006312b96c541749d735c20e86dd169no07", offset=0, limit=10 ) response = client.show_slow_log_statistics(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Go
Consulta de estatísticas de log de consulta lenta
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" gaussdb "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := gaussdb.NewGaussDBClient( gaussdb.GaussDBClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ShowSlowLogStatisticsRequest{} request.InstanceId = "{instance_id}" orderShowSlowLogStatisticsRequestBody:= "desc" offsetShowSlowLogStatisticsRequestBody:= int32(0) limitShowSlowLogStatisticsRequestBody:= int32(10) request.Body = &model.ShowSlowLogStatisticsRequestBody{ Order: &orderShowSlowLogStatisticsRequestBody, EndTime: "2024-08-16T16:51:22+0800", StartTime: "2024-08-16T14:37:00+0800", NodeId: "4006312b96c541749d735c20e86dd169no07", Offset: &offsetShowSlowLogStatisticsRequestBody, Limit: &limitShowSlowLogStatisticsRequestBody, } response, err := client.ShowSlowLogStatistics(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
Mais linguagens de programação
Para obter exemplos de código de SDK em mais linguagens de programação, visite API Explorer e clique na guia Sample Code. Exemplos de código podem ser gerados automaticamente.
Código de status
Para mais detalhes, consulte Códigos de status.
Código de erro
Para mais detalhes, consulte Códigos de erro.