O projeto é a unidade básica para gerenciar recursos no Simple Log Service (SLS). Ele fornece isolamento de recursos, controle de acesso e um ponto de entrada para acessar os recursos do SLS.
O que é um projeto
No Simple Log Service (SLS), o projeto é a unidade principal para isolar recursos e gerenciar acessos.
Utilizar projetos diferentes oferece os seguintes benefícios:
Organizar e gerenciar diferentes LogStores ou MetricStores: Na prática, você pode precisar usar o SLS para coletar e armazenar logs de vários projetos, produtos ou ambientes. Gerencie esses logs em projetos distintos para simplificar seu consumo, exportação ou análise.
Isolar o controle de acesso: Conceda permissões a um usuário RAM para executar operações em um projeto específico.
Fornecer um ponto de entrada para acesso a recursos: O SLS fornece um endpoint de service independente para cada projeto. Use esse endpoint para gravar, ler e gerenciar logs pela rede. Para mais informações sobre endpoints, consulte {{XREF_0}}.
Criar um projeto
Crie um projeto para gerenciar todos os logs e fontes de log relacionadas a uma aplicação específica.
Console
Faça login no console do Simple Log Service (SLS). Na seção Projects, clique em Create Project.
-
Configure o projeto:
Região: Selecione uma região da Alibaba Cloud com base na localização das suas fontes de log. Após a criação de um projeto, não é possível alterar sua região, e o SLS não suporta migração de projetos entre regiões. Se desejar coletar logs de instâncias ECS, recomenda-se selecionar a mesma região das instâncias ECS. Essa configuração permite a coleta de logs pela rede interna da Alibaba Cloud, garantindo maior desempenho.
Nome do projeto: O nome do projeto deve ser globalmente único dentro de uma região da Alibaba Cloud e não pode ser alterado após a criação.
Mantenha as demais configurações com seus valores padrão.
API
Erro ProjectAlreadyExist recebido, mas o projeto não está visível no console
Causa: O nome de um projeto deve ser globalmente único dentro de uma região da Alibaba Cloud. Se o projeto não estiver visível na sua conta, provavelmente ele pertence a outra conta Alibaba Cloud.
Ação recomendada: Devido ao mecanismo de isolamento de recursos da Alibaba Cloud, não é possível visualizar ou excluir um projeto de outra conta. Utilize um nome diferente e exclusivo para o seu projeto e tente criá-lo novamente.
Identificar a origem do projeto
O SLS pode criar projetos automaticamente ao integrar-se a outros services da Alibaba Cloud. Caso possua muitos projetos, rastreie suas origens, compreenda os dados armazenados e revise os custos associados.
Faça login no console do Simple Log Service (SLS) e localize o projeto desejado na lista de projetos.
-
Verifique o ícone do service ou a coluna Description para identificar a origem do projeto:
Se houver um ícone antes do nome do projeto, passe o mouse sobre ele para visualizar o nome do service de cloud associado.
Caso a coluna Description contenha texto, ela descreve a origem do projeto.
Se nenhuma das opções acima se aplicar, o projeto foi criado manualmente por um usuário.
-
Tipos de projetos criados automaticamente
Alguns projetos são criados automaticamente pelo sistema ou por outros services da Alibaba Cloud para suportar recursos específicos. Esses projetos geralmente seguem convenções de nomenclatura fixas e possuem finalidades dedicadas. Os tipos comuns incluem:
Projeto de metadados do Cloud Monitor Service (CMS): O Cloud Monitor Service (CMS) 2.0 cria automaticamente esses projetos, nomeados no formato
aliyun-metadata-{user-ID}-{region-ID}, para armazenar metadados do CMS. Geralmente, esses projetos são gratuitos. Para excluir um, primeiro exclua o workspace relacionado no console do Cloud Monitor Service (CMS) 2.0.-
Projetos criados automaticamente por outros services de cloud:
Application Real-Time Monitoring Service (ARMS): Cria automaticamente um projeto para armazenar dados de rastreamento.
ActionTrail: Cria automaticamente um projeto para armazenar logs de operação.
Log Audit Service: Cria projetos regionais ou centralizados para gerenciamento centralizado de logs.
-
Após identificar o service de cloud associado a um projeto, consulte {{XREF_3}} para obter mais informações, como os dados armazenados no projeto.
Determinar se um projeto está em uso: Verifique se os services de cloud associados, como Cloud Firewall ou Web Application Firewall (WAF), ainda estão em execução. Se as informações básicas do projeto não mostrarem dados e não houver configurações do Logtail, ele pode não estar em uso ativo. No entanto, antes de excluir, confirme sempre que o service de cloud correspondente não requer mais o SLS. Se o service associado ainda estiver em uso, não recomendamos excluir o projeto criado automaticamente por ele.
-
Decisões de limpeza para projetos criados automaticamente:
Para um projeto de Análise de Rastreamento do Application Real-Time Monitoring Service (ARMS) cujo nome começa com
proj-xtrace, confirme que suas cargas de trabalho não utilizam mais a Análise de Rastreamento. Exclua o projeto somente após confirmar que o service de rastreamento não é mais necessário.Não exclua um projeto de logs de sistema do Simple Log Service cujo nome contenha
log-service. Este projeto armazena logs importantes do sistema.Para um projeto do ActionTrail (auditoria de operações) cujo nome começa com
actiontrail, verifique o status de ativação do rastreamento, pois o rastreamento gera custos enquanto estiver ativo. Se o projeto não for mais necessário, primeiro desative o rastreamento no console do ActionTrail e depois exclua o projeto.Não desative nem exclua um projeto de logs de cluster ACK cujo nome comece com
k8s-log. Ele contém informações de eventos e auditoria do cluster.
Sugestões de otimização de custos para projetos mantidos: Para um LogStore com baixo volume de escrita que precise ser mantido, reduza seu TTL para diminuir os custos de armazenamento. Revise e desative índices de texto completo desnecessários para reduzir cobranças de tráfego de índice. Exclua LogStores e Shards que não tenham escritas nem requisitos de negócios.
-
Identificar quais services de cloud estão vinculados ou utilizando um projeto
Atualmente, o Simple Log Service (SLS) não fornece uma operação pública de metadados que consulte diretamente quais services de cloud estão vinculados a um projeto específico. Utilize os métodos indiretos a seguir.
-
Identificar fontes dedicadas pelo nome do projeto: Alguns services de cloud criam projetos que seguem convenções de nomenclatura fixas. As convenções verificadas incluem:
waf-project-{user-ID}-*,sas-log-{user-ID}-*eaegis-log-{user-ID}-*: Dedicados a services como Web Application Firewall (WAF) e Security Center. Ao tentar excluir esse tipo de projeto no console do SLS, a operação é bloqueada e você é orientado a realizá-la no console do service de cloud correspondente. Esse aviso confirma que o projeto ainda está sendo utilizado por um service de cloud.log-service-{user-ID}-{region}: Criado pelo sistema quando você ativa os logs de service. Este projeto é usado para armazenar o log de service e dados de log operacional que o SLS grava para você.Compare também o projeto com a lista de Tipos de projetos criados automaticamente nesta seção, que já cobre o projeto de metadados do Cloud Monitor Service (CMS) (
aliyun-metadata-{user-ID}-{region-ID}), Application Real-Time Monitoring Service (ARMS), ActionTrail (auditoria de operações) e Log Audit Service (auditoria de logs).
-
Identificar o service de origem pelos recursos no projeto: Abra o projeto alvo e revise os recursos que ele contém. Use os nomes e descrições dos recursos para determinar qual service escreve neles. Quando um service de cloud se integra ao SLS, ele geralmente cria um Logstore com um identificador específico do service e descreve sua finalidade. Verifique os seguintes recursos:
Listas de Logstore, MetricStore e eventstore: Um store que ainda recebe dados indica que o service correspondente ainda utiliza o projeto. Abra um store e execute uma consulta para confirmar se novos dados estão chegando.
Listas de configuração do Logtail e grupos de máquinas: Uma configuração do Logtail aplicada significa que a coleta de logs pelo coletor de dados Logtail ainda está em execução para a instância associada.
Listas de grupos de consumidores, jobs de transformação de dados e jobs de envio de dados: Um job de transformação de dados, job de envio de dados ou grupo de consumidores em execução indica que um service downstream ainda consome os dados.
Listas de buscas salvas e alertas: Uma busca salva usada para análise de logs ou uma regra de alerta que não está no estado de silêncio indica que o projeto ainda é monitorado. Verifique a classificação de dados e as configurações de domínio personalizado da mesma forma quando estiverem configuradas.
Verificar autorização de função vinculada a service (SLR) no console RAM: Faça login no console RAM e revise a lista de funções vinculadas a services para determinar se um service de cloud criou uma função vinculada a service para gravar dados no SLS. Se existir uma função vinculada a service relacionada e o service de cloud correspondente ainda estiver em execução, esse service pode estar gravando dados no SLS.
Todos esses são métodos indiretos e não há garantia de que revelarão todos os vínculos. Antes de excluir um projeto, confirme sempre que os services de cloud relacionados não requerem mais o SLS. Se não conseguir determinar o proprietário de um projeto, recomendamos mantê-lo ou abrir um ticket para assistência.
-
Para analisar o uso de recursos e o faturamento de um projeto, consulte {{XREF_4}}.
Projeto não visível na lista de projetos: Se um projeto não estiver visível na lista de projetos no console do Simple Log Service, ele pode nunca ter sido criado, pode ter sido excluído ou pode ter sido criado automaticamente por um service de cloud associado, como o Application Real-Time Monitoring Service (ARMS). Execute as etapas a seguir para solucionar o problema:
Na caixa de pesquisa acima da lista de projetos, insira o nome do projeto para confirmar se ele existe na sua conta Alibaba Cloud. Se a pesquisa não retornar resultados, o projeto não existe na conta Alibaba Cloud atual.
Verifique se o projeto está na lixeira. Na página Project Overview, escolha Basic Information > Project Recycle Bin para verificar o status da lixeira. Se a lixeira estiver ativada e o projeto estiver listado, restaure-o a partir dela.
-
Se o projeto foi criado automaticamente por um service de cloud associado, como o ARMS, acesse o console desse service e verifique se o recurso de coleta de dados está ativado. Por exemplo, no console do ARMS, escolha System Configuration > Cluster Configuration. Na página exibida, localize a opção Collection Task em ARMS Application Collection ou OpenTelemetry Application Collection, desative-a e ative-a novamente para reabilitar a coleta de dados de rastreamento. Após reativar o recurso de coleta, o projeto associado reaparecerá na lista de projetos.
NotaApós desativar a opção, o servidor deixará de aceitar dados reportados por sondas do lado do servidor.
Ativar proteção contra exclusão de projeto
Para projetos que contêm dados importantes, recomenda-se ativar o recurso de lixeira para evitar exclusões acidentais. Quando ativada, os projetos excluídos são movidos para a lixeira, onde ficam inativos e não permitem leitura ou escrita. Restaure rapidamente um projeto da lixeira se necessário. A cobrança ocorre apenas pelo armazenamento de dados dos projetos na lixeira.
Por padrão, um projeto permanece na lixeira por 7 dias. Após esse período, o sistema o exclui automaticamente.
Console
Ativar o recurso de lixeira
Faça login no console do Simple Log Service (SLS). Na seção Projects, clique no projeto desejado.
Na página de visão geral do projeto, na seção Basic Information, localize Project recycle bin e clique em Enable se ainda não estiver ativado.
API
Defina o parâmetro recycleBinEnabled na operação {{XREF_5}}.
Excluir e restaurar projetos
A exclusão de um projeto pode resultar em perda de dados do seu LogStore, MetricStore ou EventStore. Antes de prosseguir, certifique-se de que os dados não são mais necessários ou faça um backup deles.
Você ainda será cobrado por recursos como armazenamento no dia em que excluir um Projeto. {{XREF_6}} no dia seguinte. Isso significa que você não receberá uma fatura do Simple Log Service (SLS) no terceiro dia após excluir o Projeto.
Console
-
Limpeza pré-exclusão
-
Sem recursos associados:
Ao ativar a análise de logs para vários services da Alibaba Cloud, como computação elástica, armazenamento, segurança e bancos de dados, o SLS cria automaticamente um projeto e um LogStore correspondentes no console. Se não precisar mais dos logs de um service de cloud, desative o recurso de análise de logs no console desse service. Certifique-se de que o projeto não esteja associado a outros services da Alibaba Cloud.
Sem dependências de faturamento: Se o projeto estiver associado a um plano pago, como um pacote de armazenamento ou capacidade reservada, cancele a assinatura ou libere os recursos primeiro.
-
-
Procedimento
-
Faça backup de dados importantes (opcional)
Backup de dados do LogStore: Se o projeto contiver dados de log que precisam ser retidos, use o recurso {{XREF_7}} do SLS para exportá-los previamente.
Backup de configurações: Registre configurações essenciais, como nome do projeto, capacidade de armazenamento e políticas de controle de acesso, para evitar perda de informações após a exclusão.
-
Exclua o projeto
-
Na lista de projetos, localize o projeto que deseja excluir e clique em Delete na coluna Actions.
-
No painel Delete Project, insira o nome do projeto, selecione um motivo para a exclusão e clique em OK.
AvisoApós a exclusão de um projeto, todos os seus dados de log e informações de configuração são permanentemente removidos e não podem ser recuperados. Confirme sua ação cuidadosamente antes de excluir um projeto para evitar perda de dados.
Confirme a operação: Leia o aviso e insira o nome do projeto para uma segunda confirmação.
-
-
Se o recurso de lixeira estiver ativado para o projeto, encontre o projeto excluído na aba Recycle Bin Projects da lista de projetos. Por padrão, um projeto permanece na lixeira por 7 dias, período durante o qual é possível restaurá-lo ou excluí-lo permanentemente.
-
Confirmar o status da exclusão
A exclusão é uma operação assíncrona. Após enviar uma solicitação de exclusão, o sistema limpa gradualmente o projeto em segundo plano. Se tentar excluir o mesmo projeto novamente e receber uma mensagem "Project does not exist", isso geralmente significa que o projeto foi excluído com sucesso.
Acesse o console do SLS e verifique se o projeto alvo desapareceu da lista de projetos. Se a lista estiver vazia, todos os recursos do projeto naquela região foram limpos.
Se tiver ativado a lixeira, verifique também a lista Recycle Bin Projects para confirmar se o projeto foi excluído permanentemente ou restaurado.
-
O que fazer se recriar um projeto com o mesmo nome imediatamente após a exclusão e receber um erro
Project does not existou ver uma região incorreta?Sintoma: Após excluir um projeto e recriá-lo imediatamente com o mesmo nome, você pode encontrar qualquer um dos seguintes problemas:
O novo projeto não aparece na lista de projetos no console.
Um erro
Project does not existé retornado ao acessar ou operar no projeto.A região do projeto mostra a região que era usada antes da exclusão.
O Logtail reporta erros de coleta.
A criação do Logstore falha.
Observe a diferença entre este cenário e uma exclusão bem-sucedida: Se uma mensagem
Project does not existfor retornada ao tentar excluir o mesmo projeto novamente, o projeto geralmente foi excluído com sucesso. No cenário descrito aqui, o erro é retornado ao acessar ou operar em um projeto que você recriou com o mesmo nome, o que indica que a limpeza de metadados não terminou.Causa: A exclusão de um projeto é uma operação assíncrona. O sistema precisa de tempo para limpar gradualmente os metadados do projeto em segundo plano. Se recriar um projeto com o mesmo nome antes que a limpeza termine, os metadados antigos e novos podem coexistir por um curto período, causando as inconsistências descritas acima.
Solução: Tente os seguintes métodos na ordem recomendada:
Recrie o projeto com um novo nome (recomendado): Esta é a abordagem mais rápida e não é afetada pelo progresso da limpeza em segundo plano. O nome de um projeto não pode ser alterado após a criação, portanto, recomenda-se usar um novo nome.
Se precisar reutilizar o mesmo nome, aguarde a conclusão da limpeza em segundo plano e então recrie o projeto: Tente a operação de criação ou acesso novamente mais tarde. Se a operação ainda falhar após várias tentativas, abra um ticket para confirmar o status de limpeza do projeto.
Atualize a página do console para confirmar o status do recurso: Uma lista ou região incorreta às vezes é causada apenas por cache da página. Atualize o console do Simple Log Service e verifique a lista de projetos novamente para confirmar o status real do recurso.
API
A exclusão de um projeto SLS afeta chamadas de API do Alibaba Cloud Model Studio ou alertas de monitoramento em outras regiões?
A exclusão de um projeto SLS não afeta as chamadas de API do Alibaba Cloud Model Studio ou services de inferência. Os dois produtos são independentes e não têm dependência direta. A exclusão remove apenas os dados de log e a configuração no projeto excluído.
Excluir um projeto em uma região, como Ulanqab, não afeta o monitoramento ou alertas para services de cloud em outra região, como Zhangjiakou. Os projetos SLS são estritamente isolados por região.
Gerenciar cotas de recursos
Se suas cotas de recursos forem insuficientes, ajuste várias métricas de cota para o seu projeto conforme suas necessidades, incluindo o número máximo de LogStores, shards, configurações do Logtail e grupos de máquinas.
É possível criar no máximo 150 projetos sob uma conta Alibaba Cloud. Se precisar de um limite maior, abra um ticket .
Console
Faça login no console do Simple Log Service (SLS). Na seção Projects, clique no projeto desejado.
Na página de visão geral do projeto, vá para a seção Basic Information, localize Resource quotas e clique em Manage. No painel Resource Quotas, ajuste a cota para o recurso alvo e clique em Save para enviar sua solicitação. A alteração leva cerca de uma hora para entrar em vigor.
Acelerar transferência de logs entre regiões
Para transferências de logs de longa distância, como gravar logs de uma região fora da China continental para uma dentro, ative o recurso de aceleração de transferência. Esse recurso utiliza uma rede global de data centers distribuídos para rotear solicitações de usuários ao ponto de acesso mais próximo por meio de roteamento inteligente. Ele melhora significativamente a velocidade de acesso com uma rede e protocolos otimizados. A aceleração de transferência é cobrada com base na quantidade de dados transferidos.
Console
Ativar aceleração de transferência
Faça login no console do Simple Log Service (SLS). Na seção Projects, clique no projeto desejado.
Na página de visão geral do projeto, vá para a seção Endpoints, localize Acceleration endpoint e clique em Enable. Leia a mensagem na caixa de diálogo e clique em Modify.
Após ativar a aceleração de transferência, a velocidade de transferência é melhorada ao usar o Logtail para coleta de logs e ao executar jobs de transformação de dados.
API
Primeiro, chame a operação {{XREF_9}}.
-
Para usar o recurso de aceleração, defina o
endpointcomo o endpoint de aceleração. Os endpoints de aceleração suportam acesso via API apenas por HTTP e HTTPS, e não suportam protocolos como Kafka ou gRPC. Em cenários onde a aceleração de transferência não é necessária, recomenda-se usar um {{XREF_10}} padrão para reduzir custos de transferência./** * This example gets the AccessKey ID and AccessKey secret from environment variables. */String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"); String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"); /** * The service endpoint for Simple Log Service. Use an acceleration endpoint. */String endpoint = "log-global.aliyuncs.com"; /** * Create a Simple Log Service client. */static Client client = new Client(host, accessId, accessKey);
Instruções de Verificação de Acesso ao Domínio Acelerado
Ao verificar manualmente a alcançabilidade de rede do domínio acelerado, use o formato completo do domínio: <projectname>.log-global.aliyuncs.com. Substitua <projectname> pelo nome real do seu Projeto.
Note que tanto o agente LoongCollector quanto o SDK do SLS adicionam automaticamente o nome do Projeto ao iniciar solicitações. Portanto, não é necessário adicionar manualmente o prefixo <projectname> no arquivo de configuração.
Agrupar recursos
Quando precisar agrupar projetos, use tags ou grupos de recursos para categorizá-los. Utilize tags para gerenciamento no nível do projeto e grupos de recursos para gerenciamento no nível da conta Alibaba Cloud.
Definir grupo de recursos
Um projeto pode pertencer a apenas um grupo de recursos.
Console
Faça login no console do Simple Log Service (SLS). Na seção Projects, clique no projeto desejado.
Na página de visão geral do projeto, na seção Resource group details, passe o mouse sobre o Resource group ID, clique em Modify e selecione um grupo de recursos.
API
Definir tags
Console
Faça login no console do Simple Log Service (SLS). Na seção Projects, clique no projeto desejado.
Na página de visão geral do projeto, na seção Tags, clique em Edit e defina as tags no painel Edit tag.
API
Visualizar endpoints e definir um domínio personalizado
Visualize informações de endpoint ou substitua um endpoint público por um domínio personalizado. Após concluir a configuração, use o domínio correspondente como endpoint nas chamadas de API.
Console
Faça login no console do Simple Log Service (SLS). Na seção Projects, clique no projeto desejado.
Na página de visão geral do projeto, vá para a seção Endpoints para visualizar as informações de endpoint do projeto atual.
Na página de visão geral do projeto, na seção Basic Information, passe o mouse sobre Custom domain e clique em Set. No painel Specify Custom Endpoint, configure o nome do domínio e clique em Bind.
No console do Alibaba Cloud DNS, adicione um registro CNAME para ativar o vínculo do domínio. Defina o Record Value como o Public Endpoint listado na seção Endpoints na página de visão geral do projeto. Para instruções detalhadas, consulte {{XREF_13}}.
API
Vincular um certificado SSL a um domínio personalizado
Comportamento atual: O console do SLS não suporta upload ou vínculo direto de certificados SSL a um domínio personalizado.
-
Soluções:
Opção 1 (Recomendada): Usar Alibaba Cloud CDN. Use o Alibaba Cloud CDN para acelerar o endpoint do SLS, vincule um certificado SSL no console do CDN e acesse o SLS através do CDN.
Opção 2 (Padrão): Usar o endpoint padrão do SLS. O endpoint padrão integrado do SLS suporta HTTPS com um certificado SSL embutido. Na maioria dos casos, use-o sem configuração extra.
Como encontro as informações de configuração de Endpoint SLS, Projeto, LogStore e Instance ID?
Endpoint: Faça login no console do Simple Log Service (SLS) e visualize o Endpoint da região atualmente selecionada no topo da página ou acima da lista de projetos.
Projeto: Visualize os nomes dos projetos na lista de projetos no console do Simple Log Service (SLS).
LogStore: Abra o projeto alvo e, no painel de navegação à esquerda, clique em LogStore para visualizar os nomes dos LogStores.
Instance ID: Visualize o valor nas páginas relevantes de Data Import ou Application Management no console do Simple Log Service (SLS). Um Instance ID tipicamente começa com
sls-seguido por uma sequência de caracteres.
Monitorar e manter projetos
Use o recurso de log de service para obter logs de operação de recursos (criar, modificar, atualizar, excluir) e logs de execução de tarefas (SQL agendado, importação de dados, envio de dados) dentro de um projeto. Obtenha também logs de latência de consumo de grupos de consumidores de um LogStore, além de logs de erro, heartbeat e estatísticas do Logtail.
Console
Faça login no console do Simple Log Service (SLS). Na seção Projects, clique no projeto desejado.
-
Na página Service log do projeto, clique em Enable Detailed Logs. No painel Modify service log settings, selecione os logs de service que deseja ativar e o projeto onde serão armazenados.
Logs detalhados: Fornece logs completos de operação. Este é um recurso de pagamento conforme o uso.
Logs importantes: Fornece logs de medição, logs de latência de grupos de consumidores e logs de heartbeat do Logtail. Este recurso é gratuito.
Logs operacionais de tarefas: Fornece os logs operacionais de tarefas de importação de dados, jobs SQL agendados e tarefas de envio. Este recurso é gratuito.
Local de armazenamento de logs: Escolha um projeto existente ou permita que o sistema crie automaticamente um novo para armazenar esses logs.
Limites e compatibilidade
Limite de exclusão em massa: Atualmente, o SLS não fornece uma ferramenta para exclusão em massa de projetos ou LogStores. Exclua-os um a um manualmente.
Acesso móvel: Acesse o console do SLS através de um navegador móvel para fazer login e gerenciar projetos, incluindo criá-los, modificá-los e excluí-los.
Projeto não visível após criação: Se um projeto recém-criado não aparecer na lista, verifique se selecionou a região correta e tente atualizar a página.
Como realizar uma exportação em lote ou download de uma lista de projetos SLS?
O console do SLS não suporta exportação ou download direto de listas de projetos em massa. Para obter projetos na região atual, chame a API ListProject ou use um SDK. Por exemplo, use o método client.list_project() do SDK Python para recuperar informações do projeto.
Mais informações
Para armazenar diferentes tipos de dados em um projeto, crie diferentes tipos de stores. Para mais informações, consulte {{XREF_15}}.