Todos os produtos
Search
Central de documentação

Simple Log Service:Guia de início rápido do Simple Log Service Node.js SDK

Última atualização: Jul 20, 2026

Use o Simple Log Service Node.js SDK para criar um projeto e um Logstore, gravar logs e consultar logs.

Pré-requisitos

Observações de uso

Este exemplo usa o endpoint público da região China (Hangzhou): https://cn-hangzhou.log.aliyuncs.com. Para acessar o Simple Log Service a partir de outro serviço da Alibaba Cloud na mesma região, use o endpoint interno: https://cn-hangzhou-intranet.log.aliyuncs.com. Para obter mais detalhes sobre as regiões e os endpoints compatíveis, consulte Endpoints.

Parâmetros

createProject

Parâmetros de solicitação

Parameter

Type

Required

Description

projectName

String

Yes

Nome do projeto. O nome deve ser globalmente único. Não é possível alterar o nome após a criação do projeto.

O nome deve atender aos seguintes requisitos:

  • Pode conter letras minúsculas, dígitos e hifens (-).

  • Deve começar com uma letra minúscula e terminar com uma letra minúscula ou dígito.

  • Deve ter entre 3 e 63 caracteres.

description

String

Yes

Descrição do projeto. A descrição pode ter até 64 caracteres e não pode conter sinais de maior/menor que (<>), apóstrofos ('), barras invertidas (\), aspas duplas (") ou duas barras invertidas consecutivas (\\).

resourceGroupId

String

No

ID do grupo de recursos. Se você omitir este parâmetro, o sistema usará o grupo de recursos padrão. Para mais informações, consulte Crie um grupo de recursos.

dataRedundancyType

String

No

Tipo de redundância de dados. Padrão: armazenamento localmente redundante. Algumas regiões oferecem suporte tanto ao armazenamento localmente redundante quanto ao armazenamento com redundância de zona. Não é possível alterar o tipo de redundância de dados após a criação do projeto. Para mais informações, consulte Storage redundancy.

  • LRS: armazenamento localmente redundante

  • ZRS: armazenamento com redundância de zona

Parâmetros de resposta

Para obter informações sobre os parâmetros de resposta, consulte CreateProject.

createLogStore

Parâmetros de solicitação

Parameter

Type

Required

Description

projectName

String

Yes

Nome do projeto. No Simple Log Service, o projeto isola os recursos de diferentes usuários e controla o acesso a recursos específicos. Consulte Gerencie projetos.

logstoreName

String

Yes

Nome do Logstore. O nome deve ser globalmente único. Não é possível alterar o nome após a criação do projeto.

O nome deve atender aos seguintes requisitos:

  • Pode conter letras minúsculas, dígitos, hifens (-) e sublinhados (_).

  • Deve começar com uma letra minúscula e terminar com uma letra minúscula ou dígito.

  • Deve ter entre 3 e 63 caracteres.

ttl

int

No

O Data Retention Period em dias. O valor deve ser um número inteiro entre 1 e 3.650. Um valor de 3.650 indica armazenamento permanente. Quando o período de retenção especificado expira, os logs são excluídos.

O período de retenção de dados (ttl) é a soma dos seguintes períodos:

  • período de hot storage (hotTtl)

  • período de armazenamento de acesso pouco frequente (infrequentAccessTtl)

  • período de armazenamento de arquivamento

shardCount

int

No

Número de shards. Valores válidos: 1 a 10. Para mais informações, consulte Shard.

enableTracking

bool

No

Define se o recurso WebTracking deve ser ativado.

  • True: Ativa o WebTracking. O Logstore aceita solicitações de gravação anônimas provenientes da internet. Como essas solicitações não são autenticadas, dados incorretos podem ser gravados no Logstore.

  • False (padrão): Desativa o WebTracking.

Nota

O WebTracking permite coletar informações de acesso de navegadores, aplicativos iOS e aplicativos Android. Para mais informações, consulte Use Web Tracking to collect front-end logs.

appendMeta

bool

No

Define se o recurso Log Public IP deve ser ativado.

  • True: Ativa o recurso. O Simple Log Service adiciona as seguintes informações ao campo tag dos logs:

    • __client_ip__: O endereço IP público do cliente.

    • __receive_time__: O momento em que o log chega ao servidor, no formato de timestamp UNIX.

  • False (padrão): Desativa o recurso.

autoSplit

bool

No

Define se o Automatic Sharding deve ser ativado.

maxSplitShard

int

No

O limite de Maximum Shards para um shard. Se você ativar o Automatic Sharding, um shard poderá ser dividido automaticamente em até 256 shards.

Importante

Este parâmetro é obrigatório se autoSplit estiver definido como True.

encryptConf

dict

No

Estrutura de dados para configurações de criptografia. Inclui os parâmetros enable, encrypt_type e user_cmk_info. Para mais informações, consulte EncryptConf e Data encryption.

telemetryType

String

No

Tipo de dados observáveis. Valores válidos:

  • None (padrão): Dados de log.

  • metric: Dados de métrica. Se você definir o valor como metric, apenas os seguintes parâmetros terão efeito:

    • logstoreName

    • ttl

    • shardCount

    • autoSplit

    • maxSplitShard

    • appendMeta

Importante

Não é possível modificar este parâmetro após a criação do Logstore.

hotTtl

int

No

Período de hot storage dos dados no Logstore, em dias. O valor mínimo é 7 e o valor não pode exceder o valor de ttl. Um valor de -1 indica que todos os dados dentro do período de retenção (ttl) são armazenados na camada de hot storage.

Após a expiração do período de hot storage, os dados são movidos para o armazenamento de acesso pouco frequente. Para mais informações sobre hot storage, armazenamento de acesso pouco frequente, armazenamento de arquivamento e o processo de conversão de dados, consulte Gerencie o armazenamento inteligente em camadas.

  • Os dados devem permanecer em hot storage por pelo menos 7 dias antes de serem movidos para o armazenamento de acesso pouco frequente. Os dados devem permanecer no armazenamento de acesso pouco frequente por pelo menos 30 dias antes de serem movidos para o armazenamento de arquivamento.

  • Os dados devem permanecer em hot storage por pelo menos 30 dias antes de serem movidos para o armazenamento de arquivamento.

mode

String

No

O Simple Log Service oferece dois tipos de Logstores: Standard e Query.

  • Standard (padrão): Oferece suporte a todas as capacidades de análise de dados do Simple Log Service, incluindo monitoramento em tempo real, análise interativa e observabilidade ponta a ponta.

  • Query: Oferece suporte a consultas de alto desempenho com cerca de metade do custo de indexação do tipo Standard. Este tipo não oferece suporte a instruções SELECT e é adequado para cenários com grandes volumes de dados, longos períodos de retenção ou sem requisitos de análise de logs.

Para mais informações, consulte Logstore types.

infrequentAccessTtl

int

No

Período de armazenamento de acesso pouco frequente dos dados no Logstore, em dias. Para mais informações, consulte Gerencie o armazenamento inteligente em camadas.

Parâmetros de resposta

Para obter informações sobre os parâmetros de resposta, consulte CreateLogStore.

createIndex

Parâmetros de solicitação

Parameter

Type

Required

Description

projectName

String

Yes

Nome do projeto. No Simple Log Service, o projeto isola os recursos de diferentes usuários e controla o acesso a recursos específicos. Consulte Gerencie projetos.

logstoreName

String

Yes

Nome do Logstore. No Simple Log Service, o Logstore coleta, armazena e consulta logs. Consulte Gerencie Logstores.

index

index

Yes

Configuração do índice.

Parâmetros de resposta

Para obter informações sobre os parâmetros de resposta, consulte CreateIndex.

getLogs

Parâmetros de solicitação

Parameter

Type

Required

Description

projectName

String

Yes

Nome do projeto. No Simple Log Service, o projeto isola os recursos de diferentes usuários e controla o acesso a recursos específicos. Consulte Gerencie projetos.

logstoreName

String

Yes

Nome do Logstore. No Simple Log Service, o Logstore coleta, armazena e consulta logs. Consulte Gerencie Logstores.

from

int

Yes

Início do intervalo de tempo da consulta. O valor é um timestamp UNIX.

Nota
  • Momento em que o Logstore recebe os logs. O campo __tag__:__receive_time__ é um reserved field do Simple Log Service.

  • Intervalo de tempo definido pela hora inicial e final. Trata-se de um intervalo fechado à esquerda e aberto à direita. O intervalo inclui a hora inicial, mas não a hora final. Se ambas forem iguais, o intervalo é inválido e um erro é retornado.

  • Para garantir que todos os dados possam ser consultados, especifique um intervalo de tempo preciso até o minuto. Se você também especificar um intervalo de tempo em uma instrução analítica, esse intervalo será usado para consulta e análise.

  • Se desejar especificar um intervalo de tempo preciso até o segundo, use date and time functions para converter o formato de tempo. Exemplos:

    • | SELECT FROM log WHERE from_unixtime(__time__) > from_unixtime(1664186624) AND from_unixtime(__time__) < now()

    • | SELECT FROM log WHERE __time__ > to_unixtime(date_parse('2022-10-19 15:46:05', '%Y-%m-%d %H:%i:%s')) AND __time__ < to_unixtime(now())

to

int

Yes

Fim do intervalo de tempo da consulta. O valor é um timestamp UNIX.

Nota
  • Momento em que o Logstore recebe os logs. O campo __tag__:__receive_time__ é um reserved field do Simple Log Service.

  • Intervalo de tempo definido pela hora inicial e final. Trata-se de um intervalo fechado à esquerda e aberto à direita. O intervalo inclui a hora inicial, mas não a hora final. Se ambas forem iguais, o intervalo é inválido e um erro é retornado.

  • Para garantir que todos os dados possam ser consultados, especifique um intervalo de tempo preciso até o minuto. Se você também especificar um intervalo de tempo em uma instrução analítica, esse intervalo será usado para consulta e análise.

  • Se desejar especificar um intervalo de tempo preciso até o segundo, use date and time functions para converter o formato de tempo. Exemplos:

    • | SELECT FROM log WHERE from_unixtime(__time__) > from_unixtime(1664186624) AND from_unixtime(__time__) < now()

    • | SELECT FROM log WHERE __time__ > to_unixtime(date_parse('2022-10-19 15:46:05', '%Y-%m-%d %H:%i:%s')) AND __time__ < to_unixtime(now())

topic

String

No

Tópico dos logs. O valor padrão é uma string vazia. Para mais informações, consulte Log topics.

query

String

No

Instrução de pesquisa ou análise. Para mais informações, consulte Query and analyze logs. Para usar o Dedicated SQL, adicione set session parallel_sql=true; à instrução analítica. Exemplo: | set session parallel_sql=true; select count() as pv. Para problemas comuns de consulta e análise, consulte Common errors when you query and analyze logs.

Nota

Quando o parâmetro query contém uma instrução analítica (instrução SQL), os parâmetros line e offset são ignorados. Recomendamos definir esses parâmetros como 0 e usar a cláusula LIMIT na instrução SQL para paginação. Para mais informações, consulte Paginate query and analysis results.

line

int

No

Este parâmetro se aplica apenas quando o parâmetro query contém uma instrução de pesquisa. Especifica o número máximo de logs a serem retornados. Faixa de valores: 0–100. Padrão: 100.

offset

int

No

Este parâmetro se aplica apenas quando o parâmetro query contém uma instrução de pesquisa. Especifica o número de logs a serem ignorados antes de retornar os resultados. Padrão: 0.

reverse

bool

No

Define se os logs devem ser retornados em ordem decrescente de timestamps. A precisão é de minutos.

  • True: Retorna logs em ordem decrescente de timestamps.

  • False (padrão): Retorna logs em ordem crescente de timestamps.

Importante
  • Se o parâmetro query contiver uma instrução de pesquisa, o parâmetro reverse será válido e definirá a ordem de classificação dos logs retornados.

  • Se o parâmetro query contiver uma instrução analítica, o parâmetro reverse será ignorado. A ordem de classificação é definida pela cláusula ORDER BY na instrução analítica.

powerSql

bool

No

Define se o Dedicated SQL deve ser utilizado. Para mais informações, consulte High-performance and high-precision query and analysis (Dedicated SQL).

  • True: Usa o Dedicated SQL.

  • False (padrão): Usa o SQL padrão.

Você também pode ativar o Dedicated SQL dentro do parâmetro query.

Parâmetros de resposta

Para obter informações sobre os parâmetros de resposta, consulte GetLogs.

Exemplos

Coletar logs com código Node.js

O exemplo a seguir usa um script Node.js chamado SLSQuickStart.js para criar um projeto, um Logstore e um índice, além de gravar e consultar dados de log.


const Client = require('@alicloud/log')
const sls = new Client({
    // In this example, the AccessKey ID and AccessKey secret are read from environment variables.
    accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
    accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
    // The Simple Log Service endpoint. This example uses the endpoint for the China (Hangzhou) region. Replace this with the endpoint for your region. 
    endpoint: 'cn-hangzhou.log.aliyuncs.com'
})
// Required. The project name.
const projectName = "aliyun-test-node-project"
// Required. The logstore name.
const logstoreName = "request_log"

async function test() {
    // Create a project.
    await sls.createProject(projectName, {
        description: 'test'
    })
    // Create a logstore.
    await sls.createLogStore(projectName, logstoreName, {
        // Required. The data retention period in days. A value of 3650 means the data is stored permanently.
        ttl: 3600,
        // Required. The number of shards.
        shardCount: 2
    })
    // Create an index.
    const index = {
        "keys": {
            "request_method": {
                // Specifies whether queries are case-sensitive. `false` makes queries case-insensitive.
                "caseSensitive": false,
                // Specifies whether to enable statistical analysis for this field.
                "doc_value": true,
                "token": ["\n", "\t", ";", ",", "=", ":"],
                "type": "text"
            }, "status": {
                // Specifies whether queries are case-sensitive. `false` makes queries case-insensitive.
                "caseSensitive": false,
                // Specifies whether to enable statistical analysis for this field.
                "doc_value": true,
                "token": ["\n", "\t", ";", ",", "=", ":"],
                "type": "long"
            }
        },
    }
    await sls.createIndex(projectName, logstoreName, index)
    // Write logs.
    const logGroup = {
        logs: [
          { content: { request_method: 'GET', status: '200' }, timestamp: Math.floor(new Date().getTime() / 1000) },
          { content: { request_method: 'GET', status: '500' }, timestamp: Math.floor(new Date().getTime() / 1000) },
          { content: { request_method: 'GET', status: '200' }, timestamp: Math.floor(new Date().getTime() / 1000) },
          { content: { request_method: 'POST', status: '500'}, timestamp: Math.floor(new Date().getTime() / 1000) }
        ],
        tags: [{ tag1: 'testTag' }],
        topic: 'testTopic',
        source: 'testSource'
      };
      await sls.postLogStoreLogs(projectName, logstoreName, logGroup);
      // Query example 1: Query logs from the past day.
      const from = new Date();
      from.setDate(from.getDate() - 1);
      const to = new Date();
      const res = await sls.getLogs(projectName, logstoreName, from, to);
      
      // Query example 2: Use an analytic statement to count the number of logs in the last 10 minutes.
      // const from = new Date();
      // from.setSeconds(from.getSeconds() - 600)
      // const to = new Date();
      // query = '* | select count(*) as count';
      // topic = 'testTopic';
    
      // const res = await sls.getLogs(projectName,logstoreName,from,to,{
      //     query: query,
      //     topic: topic,
      //     line: 100,
      //     offset: 0,
      //     reverse: false,
      //     powersql: false
      // });
      
      console.log(res)
}
// Run the function.
test()

Exemplo de resposta:

[
  {
    request_method: 'GET',
    status: '200',
    __topic__: 'testTopic',
    __source__: 'testSource',
    '__tag__:tag1': 'testTag',
    __time__: '1744882259'
  },
  {
    request_method: 'GET',
    status: '500',
    __topic__: 'testTopic',
    __source__: 'testSource',
    '__tag__:tag1': 'testTag',
    __time__: '1744882259'
  },
  {
    request_method: 'GET',
    status: '200',
    __topic__: 'testTopic',
    __source__: 'testSource',
    '__tag__:tag1': 'testTag',
    __time__: '1744882259'
  },
  {
    request_method: 'POST',
    status: '500',
    __topic__: 'testTopic',
    __source__: 'testSource',
    '__tag__:tag1': 'testTag',
    __time__: '1744882259'
  }
]

A tabela a seguir lista mais exemplos de código.

GitHub source code

Description

integration.test.js

Cria projetos, Logstores e índices. Grava e consulta logs e Logstores. Obtém distribuições de logs.

Coletar logs Node.js com Logtail

Para obter informações sobre como usar o Logtail para coletar logs log4js de um aplicativo Node.js, consulte Collect Node.js logs.