Crie relatórios personalizados e analise dados de uso AppStream 2.0 - Amazon AppStream 2.0

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie relatórios personalizados e analise dados de uso AppStream 2.0

O Amazon Athena é um serviço de consulta interativo com tecnologia sem servidor que você pode usar para analisar dados armazenados em buckets do S3 usando consultas SQL padrão. Você pode usar o Athena para agregar relatórios de uso ou gerar outros tipos de relatórios personalizados.

Crie um AWS Glue rastreador

AWS Glue é um serviço de extração, transformação e carregamento (ETL) totalmente gerenciado que permite criar um banco de dados a partir dos dados do Amazon S3 e consultar esse banco de dados usando o Athena. Esse banco de dados também é conhecido como Catálogo AWS Glue de Dados. Um AWS Glue rastreador pode detectar automaticamente o esquema dos seus dados do Amazon S3 e criar o banco de dados e as tabelas correspondentes. AppStream 2.0 fornece um AWS CloudFormation modelo que você pode usar para criar os AWS Glue recursos necessários.

Importante

A conclusão das etapas do procedimento a seguir cria um AWS Glue rastreador. Porém, estas etapas não iniciam o crawler. Para iniciar o crawler, você deve executar as etapas do próximo procedimento. Para obter mais informações sobre AWS Glue rastreadores, consulte Definindo rastreadores.

Para criar um AWS Glue rastreador
  1. Abra o console AppStream 2.0 em https://console.aws.amazon.com/appstream2.

  2. Escolha a AWS região para a qual você se inscreveu para receber relatórios de uso.

  3. No painel de navegação, escolha Usage Reports (Relatórios de uso) e verifique se o registro em log está habilitado.

  4. Na guia Detalhes do relatório, no parágrafo ao lado do Analytics, escolha o link do CloudFormationmodelo.

    A escolha do link abre o AWS CloudFormation console, onde você pode revisar os parâmetros da AWS CloudFormation pilha especificada pelo modelo antes de executá-la. O modelo, quando executado, cria um AWS Glue rastreador e vários exemplos de consultas do Athena.

  5. Na página Especificar detalhes, ao lado de ScheduleExpression, mantenha o valor padrão ou especifique um valor de expressão cron diferente para a frequência com que você deseja executar o rastreador. Não altere nenhum outro valor padrão. Quando concluir, selecione Próximo.

    Por padrão, o crawler está programado para ser executado diariamente, mas você pode configurar o crawler para ser executado semanalmente, mensalmente ou com outra frequência. Para obter informações sobre a sintaxe cron, consulte Expressões cron.

  6. Na página Options (Opções), mantenha os valores padrão e escolha Next (Próximo).

  7. Na página de revisão, marque a caixa de seleção ao lado de “Eu reconheço que AWS CloudFormation pode criar recursos do IAM com nomes personalizados” e, em seguida, escolha Criar.

    Você deve ter permissões AWS Glue e AWS Identity and Access Management (IAM) suficientes para criar e executar a AWS CloudFormation pilha. Se você não tiver as permissões necessárias, peça ao administrador da sua conta da Amazon Web Services para executar essas etapas na sua conta ou conceder as permissões a seguir.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "athena:CreateNamedQuery", "athena:BatchGetNamedQuery", "athena:GetNamedQuery", "athena:StartQueryExecution", "athena:GetQueryResults", "athena:GetQueryExecution", "athena:ListNamedQueries", "cloudformation:DescribeStacks", "cloudformation:GetStackPolicy", "cloudformation:DescribeStackEvents", "cloudformation:CreateStack", "cloudformation:GetTemplate", "cloudformation:ListChangeSets", "cloudformation:ListStackResources", "iam:GetRole", "iam:CreateRole", "iam:GetRolePolicy", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads", "s3:ListBucket", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*", "arn:aws:cloudformation:*:*:stack/AppStreamUsageReports/*", "arn:aws:athena:*:*:workgroup/primary", "arn:aws:s3:::aws-athena-query-results-*" ] }, { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:PutRolePolicy", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::appstream-logs-*", "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AppStreamUsageReports-AppStreamUsageReportGlueRole*" ], "Condition": { "StringEquals": { "iam:PassedToService": "glue.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "cloudformation:GetTemplateSummary", "glue:GetResourcePolicy", "glue:GetCrawlers", "glue:BatchGetCrawlers", "glue:GetClassifiers", "glue:CreateClassifier", "glue:ListCrawlers", "glue:GetTags", "glue:GetCrawlerMetrics", "glue:GetClassifier", "tag:GetResources" ], "Resource": "*" }, { "Effect": "Allow", "Action": "athena:RunQuery", "Resource": "arn:aws:athena:*:*:workgroup/primary" }, { "Effect": "Allow", "Action": [ "glue:GetTables", "glue:GetPartitions", "glue:GetTable" ], "Resource": [ "arn:aws:glue:*:*:table/appstream-usage/*", "arn:aws:glue:*:*:database/appstream-usage", "arn:aws:glue:*:*:catalog" ] }, { "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:CreateDatabase", "glue:GetDatabases" ], "Resource": [ "arn:aws:glue:*:*:database/appstream-usage", "arn:aws:glue:*:*:catalog" ] }, { "Effect": "Allow", "Action": [ "glue:GetCrawler", "glue:StartCrawler", "glue:CreateCrawler" ], "Resource": "arn:aws:glue:*:*:crawler/appstream-usage*" }, { "Effect": "Allow", "Action": "glue:GetCatalogImportStatus", "Resource": "arn:aws:glue:*:*:catalog" } ] }

Crie um catálogo de dados usando o AWS Glue rastreador

O AWS Glue rastreador, quando executado, cria um catálogo de dados e um esquema que são mapeados para a estrutura de suas sessões e relatórios de aplicativos. Cada vez que um novo relatório é armazenado em seu bucket do Amazon S3, você deve executar o rastreador para atualizar seu catálogo de AWS Glue dados com os dados do novo relatório.

nota

Cobranças podem ser aplicadas à operação do seu AWS Glue rastreador. Para obter mais informações, consulte Preços do AWS Glue.

  1. Abra o AWS Glue console em https://console.aws.amazon.com/glue/.

  2. Escolha a AWS região para a qual você se inscreveu para receber relatórios de uso.

  3. Marque a caixa de seleção ao lado do crawler chamado appstream-usage-sessions-crawler e escolha Run crawler (Executar crawler). Repita esta etapa para o crawler chamado appstream-usage-apps-crawler.

    A execução dessas etapas executa os rastreadores e os programa para serem executados automaticamente de acordo com a programação especificada na pilha. AWS CloudFormation

  4. Quando a execução de ambos os crawlers estiver concluída, no painel de navegação, escolha Databases (Bancos de dados). É exibido um banco de dados chamado appstream-usage, que representa seus relatórios de uso. Esse banco de dados é um catálogo de AWS Glue dados criado quando appstream-usage-sessions-crawler e appstream-usage-apps-crawler foram executados.

  5. Para visualizar as tabelas no banco de dados, escolha appstream-usage, Tables (Tabelas). Duas tabelas, applications (aplicativos) e sessions (sessões), que representam seus relatórios de uso de aplicativos e sessões, respectivamente, são exibidas. Escolha uma tabela para visualizar o respectivo esquema.

    Agora você pode consultar essas tabelas no Athena usando SQL.

Criar e executar consultas do Athena

Para consultar os relatórios de uso usando o Athena, execute as etapas a seguir.

nota

Podem ser cobrados encargos pelas consultas do Athena que você executar. Para obter mais informações, consulte Preços do Amazon Athena.

  1. Abra o console do Athena em https://console.aws.amazon.com/athena/.

  2. Em Database (Banco de dados), escolha appstream-usage.

  3. No painel de consulta, insira uma consulta SQL e escolha Run query (Executar consulta).

Trabalhar com consultas do Athena

Esta seção fornece consultas SQL que você pode executar no Athena para analisar dados de relatórios de uso no seu bucket do Amazon S3.

Para criar um relatório consolidado de todas as sessões em um determinado mês, execute a seguinte consulta:

SELECT * FROM "appstream-usage"."sessions" WHERE year='four-digit-year' AND month='two-digit-month'

Você também pode executar operações de junção entre as tabelas applications e sessions na sua consulta. Por exemplo, para visualizar os diferentes usuários que iniciaram cada aplicativo em um determinado mês, execute a seguinte consulta:

SELECT DISTINCT apps.application_name, sessions.user_id FROM "appstream-usage"."applications" apps INNER JOIN "appstream-usage"."sessions" sessions ON (apps.user_session_id = sessions.user_session_id AND sessions.year='four-digit-year' AND sessions.month='two-digit-month') WHERE apps.year='four-digit-year' AND apps.month='two-digit-month' ORDER BY 1, 2

Os resultados de consultas do Athena são armazenados como arquivos .csv em um bucket do Amazon S3 em sua conta chamada aws-athena-query-results-account-id-without-hyphens-region-code. Para facilitar a localização dos resultados da consulta, escolha Save as (Salvar como) e forneça um nome para sua consulta antes de executá-la. Você também pode escolher o ícone de download no painel Resultados do Athena para fazer download dos resultados da consulta como um arquivo .csv.

Para melhorar a performance e reduzir os custos, o Athena usa o particionamento para reduzir a quantidade de dados verificados em consultas. Para obter mais informações, consulte Particionar dados. Os relatórios de uso são particionados em seus buckets do Amazon S3 por ano, mês e dia. Você pode restringir suas consultas a determinadas partições de intervalos de datas usando os campos year (ano),month (mês) e day (dia) como condições em suas consultas. Por exemplo, a consulta a seguir consome apenas os relatórios de sessões da semana de 19 de maio de 2019.

SELECT SUBSTRING(session_start_time, 1, 10) AS report_date, COUNT(DISTINCT user_session_id) AS num_sessions FROM "appstream-usage"."sessions" WHERE year='2019' AND month='05' AND day BETWEEN '19' and '25' GROUP BY 1 ORDER BY 1

Por outro lado, a consulta a seguir produz resultados idênticos, mas, como não se restringe a nenhuma partição, ela consome todos os relatórios de sessões armazenados no seu bucket do Amazon S3.

SELECT SUBSTRING(session_start_time, 1, 10) AS report_date, COUNT(DISTINCT user_session_id) AS num_sessions FROM "appstream-usage"."sessions" WHERE session_end_time BETWEEN '2019-05-19' AND '2019-05-26' GROUP BY 1 ORDER BY 1

Se uma sessão abranger mais de um dia, os registros de sessão e aplicativo serão exibidos em relatórios de sessões e aplicativos, respectivamente, de acordo com o dia em que a sessão terminou. Por esse motivo, se você precisar encontrar registros relacionados a todas as sessões que estiveram ativas durante um determinado intervalo de datas, considere expandir o conjunto de partições da sua consulta pela duração máxima de sessão que você tiver configurado para suas frotas.

Por exemplo, para visualizar todas as sessões que estavam ativas para uma determinada frota durante um mês, em que a frota tinha uma duração máxima de sessão de 100 horas, execute a consulta a seguir para expandir seu conjunto de partições em cinco dias.

SELECT * FROM "appstream-usage"."sessions" WHERE fleet_name = 'fleet_name' AND session_start_time BETWEEN '2019-05-01' AND '2019-06-01' AND year='2019' AND (month='05' OR (month='06' AND day<='05')) ORDER BY session_start_time

O AWS CloudFormation modelo que criou os AWS Glue rastreadores também criou e salvou vários exemplos de consultas em sua conta do Athena que você pode usar para analisar seus dados de uso. Essas consultas de exemplo incluem o seguinte:

  • Relatório mensal de sessões agregadas

  • Duração média de sessão por pilha

  • Número de sessões por dia

  • Total de horas de streaming por usuário

    nota

    As cobranças de uso sob demanda são arredondadas para a próxima hora em cada sessão.

  • Usuários distintos por aplicativo

Para usar qualquer uma dessas consultas, execute as etapas a seguir.

  1. Abra o console do Athena em https://console.aws.amazon.com/athena/.

  2. Escolha Saved Queries (Consultas salvas). As cinco consultas apontadas antes deste procedimento devem ser exibidas. O nome de cada consulta começa com "AS2". Por exemplo, "AS2_users_per_app_curr_mo".

  3. Para executar uma consulta, escolha o nome da consulta, em vez de a opção ao lado do nome.

  4. O texto da consulta é exibido no painel de consulta. Selecione Executar consulta.

Para ver essas consultas em um AWS CloudFormation modelo separado, consulte athena-sample-queries-appstream-usage-data_template.yml no Catálogo de amostras de código.AWS