Hunter Performance - Live Report - KPI Summary (via Email)

quinta-feira, 27 de outubro de 2011 14:51:00 Categories: Access Analysis Hunter KPI Performance
Rate this Content 1 Votes

Indiscutivelmente o principal objetivo dos Engenheiros de Telecomunicações é obter a Melhor Performance Possível do Sistema, seja em termos de Qualidade de Chamadas, Taxas de Quedas e Bloqueios, QoS e Velocidade de Dados, Disponibilidade da Rede ou qualquer outro Indicador.

 

 

Com a Excelência da Performance, fica mais fácil de se aumentar a Base de Clientes, bem como aumentar a Satisfação dos Clientes Atuais. Também é possível uma melhor Gestão dos Recursos de OPEX e CAPEX, traduzindo-se em significativos ganhos também na parte Econômica. Em outras palavras, só temos benefícios.

Mas como fazer para garantir a Excelência da Performance da Rede?

Já vimos que pela enorme quantidade de elementos (na verdade, enorme quantidade de qualquer outra grandeza – elementos, clientes, contadores e alarmes...) é imprescindível a utilização de uma metodologia eficiente, que nos permita gerenciar tudo isso.

E é exatamente isso que começamos a ver hoje. É claro que não existe uma receita mágica única para se analisar uma rede, mas existem sim o aprendizado daquilo que pode ser realizado da melhor forma.

 

Download

Para baixar os arquivos de exemplo deste tutorial, clique aqui.

Para colaborar com o Projeto, e receber todos os códigos existentes, clique aqui.

 

O que podemos fazer então?

Vamos então prosseguir com a metodologia, com as sugestões de formas de trabalho que se aplicam a qualquer cenário.

O Procedimento sugerido é bem simples.

Primeiro, acessar diariamente a OSS de cada tecnologia, e baixar um ou mais templates com os principais contadores. Esses arquivos podem ser de diversos formatos, e depois de armazenados num diretório local, são processados e importados para um banco de dados – que vai acumulando os dados nas tabelas de Performance.

 

Nota: Os arquivos exportados da OSS podem ser de qualquer tipo (XLS, XML, CSV, TXT, etc...). O importante é que contenham os contadores básicos necessários, e que a macro de importação trate o seu formato específico.

Pronto, é isso!

Não entendeu? Certo, vamos explicar.

Essa deve ser a única tarefa que o Engenheiro de Telecom deve fazer para conseguir analisar a sua rede. (Se bem que nem mesmo isso seria necessário, pois até a exportação dos dados das OSS’s podem ser automatizada!).

Mas vamos considerar essa situação, onde você chega diariamente ao escritório, e tem acesso às OSS’s. Faz o Login, baixa os dados, roda a macro de processamento, e pronto.

Já estão disponíveis diversos relatórios, conforme veremos em cada novo tutorial.

 

Mas os Dados de minha Rede são diferentes, o que faço?

Bom, aí é que começa a melhorar. Até certo ponto, não temos como padronizar nada. Dependendo do seu vendor, os seus dados originais serão diferentes.

 

Mas os dados dos contadores, após serem tratados, são importados para tabelas padronizadas, com os Indicadores principais como mostrado nos tutoriais anteriores.

A partir dessas tabelas, os todos os outros módulos do Hunter estarão prontos – totalmente integrados!

 

Isso se deve a organização e padronização adotada, principalmente nas nomenclaturas dos bancos de dados, tabelas e campos.

 

Mas os Dados de minha Rede (tabelas de Performance) já estão disponíveis, só que em outro formato. E então, como posso prosseguir?

Nos casos em que os dados de entrada não são obtidos e/ou processados por você, ou seja, você não tem total controle sobre o seu formato, podemos fazer uma ‘correlação’ com o nosso formato esperado.

Calma, isso é simples. Vamos explicar.

Primeiro, suponha que os seus dados esteja como o formato mostrado abaixo (dados de Tráfego por Células).

 

Mas o formato que eles deveria estar é o seguinte:

 

Essa correlação é bem simples de se fazer. Basta criarmos uma consulta com os campos calculados ‘exatamente’ como deveria ser.

 

E você já sabe que o Access trata ‘Tabelas’ e ‘Consultas’ praticamente da mesma forma, no que se refere a obter os dados das mesmas. Ou seja, você pode ‘Selecionar Tudo de um Tabela’ ou ‘Selecionar Tudo de uma Consulta’.

Bom, por enquanto é isso. Com o que você já aprendeu até hoje, você deverá conseguir sem problemas ajustar os módulos para a sua realidade.

 

Hunter Report: Live Performance

Se apresentássemos a solução completa dos módulos de Performance, com todos os relatórios existentes, com certeza você teria dificuldades. Isso porque em cada um inserimos sempre novos conceitos e algorítmos. Embora sempre simples, precisam estar bem entendidos.

Assim, vamos começar hoje com o módulo ‘Live Performance’. Esse módulo é responsável por processar os dados da nossa tabela base, e apresentar o resultado, por e-mail e também por arquivos.

Esse módulo por sua vez tem uma série de sub-módulos, que vamos ver oportunamente.

E começamos hoje com o primeiro, e mais básico deles, o ‘Live Performance: Summary’.

 

Hunter Report: Live Performance - Summary

Após as introduções necessárias, vamos então falar do módulo de hoje.

A partir de agora, e cada vez mais, seremos bem superficiais em demonstrar ações simples como criar consultas, campos calculados, funções, etc... O motivo é que você já deve saber fazer isso. Senão, releia alguns tutoriais anteriores.

 

Interface do Usuário

A melhor forma de falarmos sobre esse módulo é apresentando o que ele realiza. A seguir, temos a sua Interface Principal.

 

 

As opções são bem intuitivas.

Na Guia ‘Main’, temos as opções abrir a planilha com configuração dos dados (como devem ser formatados), escolher a data para o relatório, escolher quais os sub-relatórios devem ser apresentados, bem como quais as tecnologias devem ser incluídas.

Em outra Guia ‘Emails’, podemos escolher quais os destinatários para receber os relatórios.

Tudo isso entretanto ficará mais fácil de ser entendido quando você praticar. Ou seja, após receber os arquivos, simplesmente clique no botão ‘RUN’, e você receberá o e-mail com o relatório de acordo com as suas configurações!

 

Em outras palavras, você a princípio tem os seus dados de forma bem ‘básica’, como na tabela original.

 

Após clicar no botão ‘RUN’, em segundos já tem um relatório disponível – inclusive em seu e-mail – sobre a sua rede.

 

Observação: todos os dados apresentados são fictícios, como todos os dados de exemplo do sistema Hunter. Porém, servem como referência para criação/adaptação do sistema às diferentes realidades de cada rede.

Nota: estamos apenas começando a lidar com os algorítmos de Performance do Hunter, e o relatório de hoje é ainda simples, porém não deixa de ser interessante. Ele apresenta um sumário da rede para o período selecionado, ou seja, de forma geral, como está a rede em termos dos principais Indicadores que devem ser monitorados!

De qualquer forma é muito importante que você se familiarize com todos os procedimentos, caso contrário, não conseguirá evoluir.

A melhor forma de explorar cada relatório (como esse de hoje) é através da vizualização do email.

Não vamos detalhar cada parte específica, mas de forma geral, esse relatório apresenta resumos (‘Summary’) da Performance da Rede.

É dividido em 4 subpartes:

  • Resumo geral da rede.
  • Resumo da rede agrupado por Tecnologia e Banda.
  • Resumo da rede agrupado por BSC/RNC.
  • Resumo da rede agrupado por BSC/RNC, Tecnologia e Banda.

Observação: É importante lembrar aqui que esses são relatórios sugeridos, e prontos para essa versão desse módulo. Entretanto, como sempre, você pode e deve fazer as suas customizações, seja alterando os relatórios existentes, ou incluindo/inserindo novos relatórios.

 

Arquivo Config – Names, Ranges, Cores

A nossa solução utiliza uma planilha do Excel como auxiliar para as configurações de Indicadores, Ranges e Cores.

 

Clicando no botão correspondente na interface principal, você abre esse arquivo, pode fazer as alterações. (Lembre-se de fechar o arquivo quando rodar os relatórios, senão ficará mais lento).

Esse arquivo (Excel) é vinculado no nosso Script, e dessa forma fica disponível como uma tabela.

 

Os campos desse arquivo são por sua vez acessados através de uma consulta, com critério de Filtro baseado em cada utilização. (Isso fica meio confuso de se entender agora, daqui a pouco será mais fácil, quando explicarmos o funcionamento geral).

Este arquivo possui alguns campos de configuração, e sua explicação simplificada é mostrada a seguir.

  • KPI_Granularity: é possível definir configurações diferentes para as granularidades. Por exemplo, os ranges de Tráfego são diferentes para ‘cell’ e ‘bsc’ – nessa última, os valores devem ser maiores.
  • KPI: o nome do Indicador, conforme nossa padronização.
  • ‘range_ini’ e ‘range_fin’: valor inicial e valor final que define o range de um determinado estilo (cor, etc...).
  • strThematicFont: representa a cor do texto para o tema associado.
  • strThematic: representa a cor com a qual vamos preencher a célula da tabela HTML onde informarmos o valor – de acordo com os critérios ‘range_ini’ e ‘range_fin’.

A planilha do Excel com os dados de configuração tem um pequeno código VBA que atualiza os valores dos campos temáticos, de acordo com as cores das células e das fontes na coluna ‘KPI’. É um código muito simples, que lê as propriedades ‘Interior.Color’ e ‘Font.Color’ das células correspondentes.

 

Mais detalhes você obterá com a utilização, mas não se preocupe, é tudo bem intuitivo e simples.

 

A Aplicação

Com as principais considerações feitas, vamos falar sobre a aplicação em si. Lembre-se que cada vez mais estaremos abordando apenas os aspectos de procedimento. Detalhes de criação, edição ou alteração de objetos como consultas, tabelas e códigos podem ser acessadas diretamente dos arquivos de exemplo.

 

Muitos objetos?

Assim que você abre o banco de dados de exemplo, vai perceber que o mesmo tem uma quantidade considerável de objetos – Consultas, Tabelas, etc...

Mais uma vez, não há razão para se preocupar. Sim, existem várias tabelas e consultas – mas tudo feito de uma forma organizada, e muito similar para todos os indicadores.

Explicando melhor, se criássemos apenas um relatório (por exemplo para Tráfego (‘’) como vamos demonstrar a seguir, a quantidade de elementos seria extremamente menor.

Mas vamos seguir o procedimento do começo ao fim, e aí você vai ver que tudo é bem simples, basta saber o que fazer. E lembre-se, você está em nossa companhia.

 

Aumentando a velocidade dos Relatórios!

A primeira coisa a fazer é aumentar a velocidade do processamento dos nossos dados.

 

E uma forma de se conseguir isso é criar tabelas temporárias, apenas com os dados que vamos apresentar nos relatórios. Assim, todas as demais consultas são executadas de forma praticamente instantânea.

No nosso caso de hoje, estamos tratando de relatório sumário, como o resumo total da rede para um determinado período. Mas a nossa tabela fonte com os dados de Performance tem muito mais registros, geralmente com dados de mais de um mês.

Nota: É claro que é possível fazer as consultas diretamente da tabela original – o resultado final é o mesmo. Mas essa prática de primeiro armazenar os dados relevantes em uma tabela temporária é altamente recomendada, e você vai comprovar principalmente pela rapidez alcançada.

Então vamos continuar.

 

Tabela de Entrada (com os dados de Performance)

No nosso exemplo de hoje, vamos considerar uma tabela com os dados de Performance GSM, acumulados em uma tabela para as 3 últimas semanas.

Essa é a nossa tabela padrão ‘PERF_G_CELL’. Como já temos essa tabela processada por um outro módulo, vamos simplesmente fazer um vínculo à mesma.

Observação: se por acaso você ainda não tiver essa tabela nesse formato, e tiver os dados em uma outra forma, basta fazer as vinculações adequadas. Por exemplo, se você tiver os seus dados de Performance numa planilha do Excel, vincule essa tabela ao banco de dados.

Nota: Em um outro tutorial sobre Dicas de Access, mostraremos como é simples fazer a integração de qualquer base existente (TXT, CSV, XLS, MDB...) com outros bancos de dados Access, e assim permitir o funcionamento dos módulos Hunter Existente.

Já que você tem esses dados disponíveis para download, vamos acompanhar com os mesmos. Observe que temos dados de Performance do dia 13 ao dia 31 de Outubro de 2011.

 

Certo, os nossos iniciais estão aí, prontos para serem trabalhados, e aí?

Vamos começar.

Acumular os dados relevantes em Tabelas Temporárias

Primeiro, vamos acumular os dados de um determinado período na nossa tabela temporária.

Essa tabela é a ‘PERF_CELL’. Ela é a base de tudo, todos os relatórios que vamos fazer hoje.

 

‘Aperte os cintos’ porque vamos falar de todos os objetos, e suas principais funções na aplicação.

Usamos uma consulta auxiliar para fazer um link com os dados de nossa tabela original. O objetivo é permitir fazer algum ajuste, como por exemplo alterar um nome de um campo para o formato desejado (‘MyTraffic’ -> ‘TRAF’). Como no nosso exemplo os dados já estão adequados, vamos prosseguir.

 

Temos então uma nova consulta, baseada nessa consulta que faz o link, novamente permitindo mais alguns ajustes, agora por exemplo fazendo correspondência com a base física e de configuração. Por exemplo, a partir do CELLNAME, podemos saber qual a Tecnologia e qual a Banda da nossa Célula, caso essa informção não estiver presente na nossa tabela de Performance.

No nosso caso, não temos essa informação, mas apenas para simplificar, apenas atribuimos Tecnologia como ‘GSM’ e banda como ‘850’.

 

Resumindo, temos então os dados que precisamos no formato adequado (nomes dos campos).

IMPORTANTE: Se os seus dados não estão no formato mostrado, saiba que essa é a consulta base, que deve ser obtida a partir dos seus dados. Para isso, altere a consulta apropriadamente. Se tiver dúvidas, na Seção de Dicas temos um tutorial demonstrando como integrar dados de diferentes formatos para um formato padrão (como esse caso). Em outras palavras, fazendo essa correspondência de nomenclaturas, daqui pra frente você não precisa fazer mais nada, porque tudo está padronizado!

Então, continuando, vamos primeiro acumular os dados da performance da rede por células numa tabela padrão com o nome ‘PERF_CELL’.

Essa é a nossa tabela temporária, onde os dados que serão usados nos Relatórios são acumulados.

Pelo código VBA, conseguimos inserir os dados de um determinado período, para uma determinada Tecnologia. Isso é feito da seguinte forma: Primeiro, apagamos os dados dessa tabela temporária. Em seguida, executamos uma consulta com filtros para ‘Período’ e ‘Tecnologia’.

O filtro de período vem do valor armazenado na tabela auxiliar ‘tbl_Aux_DATE’, e o filtro de Tecnologia é aplicado diretamente no código VBA, de acordo com os argumentos chamados na rotina de processamento.

Nota: perceba que os nossos dados de exemplo de hoje são apenas ‘GSM’, mas o procedimento para adicionar dados ‘UMTS’ ou de qualquer outra tecnologia seria exatamente o mesmo.

A partir dos dados da tabela ‘PERF_CELL’, são gerados outras tabelas temporárias, agora com os dados agrupados em algumas granularidades: ‘NET’, ‘NET_TECHBAND’, ‘NET_BSCRNC’ e ‘NET_BSCRNC_TECHBAND’.

 

Essas tabelas temporárias representam os resumos da Performance do Sistema, com diversos pontos de vista, por exemplo agrupados por BSC/RNC, ou por Tecnologia.

Os dados dessa tabela agora então podem agora ser acessados pelo código, e os resultados podem ser exportados para os formatos de saída apropriados.

 

Criando os Temas e HTML

Mas queremos ir além de apenas mostrar os dados em forma de tabelas. Queremos mostrar os dados formatados, ou seja, tematizados de acordo com a nossa tabela de configuração. Por exemplo, se a Taxa de  Quedas de Chamadas for muito alta, deve ser apresentada em Vermelho. Se for baixa, em verde. Tudo de acordo com os ranges e cores previamente definidos.

Então vamos lá, e continuar, vendo como fazer isso.

Vamos utilizar como exemplo apenas a formatação para a tabela ‘NET’. Exatamente o mesmo raciocínio de aplica para os demais agrupamentos.

 

Consultas ‘qry_Aux_Thematic_*’

Cada tematização tem uma consulta correspondente – todas baseadas na tabela vinculada ‘tbl_Aux_KPI_Thematic’ – a nossa planilha do Excel. Assim sabemos para cada range, qual deve ser a formatação correspondente. Veja por exemplo a Consulta ‘qry_Aux_KPI_Thematic_TRAF_NET’, que obtém os valores para formatação de Tráfego por NET.

 

Consultas ‘qry_Thematic_*’

Com as consultas ‘qry_Aux_Thematic_*’ disponíveis, podemos proseguir, e utilizar as mesmas nas consultas ‘qry_Thematic_*’.

Continuando nosso exemplo, temos a consulta ‘qry_Thematic_PERF_NET’, que tem como base a tabela ‘PERF_NET’ e a consulta auxiliar.

 

Nesse ponto, já temos as nossas consultas com os valores de formatação.

Agora vamos aprender uma forma de formatar o HTML para que possamos escrever os dados em tabelas com cada célula colorizada apropriadamente.

 

Consultas ‘qry_*_HMTL_TAG’

Para facilitar a maneira de escrevermos os relatórios no código, utilizamos consultas que concatenam os dados num campo chamado ‘Content’. Esse campo contém as TAG HTML formatadas como necessário.

 

Consultas ‘qry_*_UNION’

Ok, os dados já estão com as TAG HTML que compõem as linhas e colunas da tabela HTML. Entretanto, ainda precisamos adicionar a linha de Cabeçalho (também HTML) e as linhas com as TAGs iniciais ‘<table>’ e finais ‘</table>’ da tabela.

Essas 3 linhas podem ser encontradas na tabela auxiliar ‘tbl_Aux_HTML’.

 

Então, podemos criar agora as consultas UNION, juntando todos os dados necessários num único local, e já no formato desejado.

Para isso, criamos consultas UNION, que unem os dados do Campo ‘Content’ da consulta anterior com os dados dessa tabela auxiliar.

 

E o resultado já está quase conforme o que buscamos.

 

Mas não é bom trabalharmos com consultas UNION, por exemplo chamando as mesmas através do código. Para simplificar, simplesmente criamos uma nova e final consulta.

 

Bom, é isso.

Acabamos de ver do início ao fim como foi feita a formatação HTML de um relatório simples, agrupando a performance da rede (‘NET’).

As demonstrações foram feitas através do Indicador de Tráfego (‘TRAF’).

Entretanto, a geração dos demais Relatórios, e também incluindo outros Indicadores, segue exatamente o mesmo procedimento aqui descrito, e todas as tabelas e consultas são padronizadas de forma a facilitar a extensão de mais Relatórios e Indicadores.

Os dados de exemplo fornecidos são de uma rede GSM fictícia, e esse módulo de exemplo apresenta 4 Relatórios disponíveis, que englobam praticamente todas as diferentes visões da rede.

Além disso, o exemplo contempla todos os Indicadores chave – KPI’s, servindo de excelente ponto de partida para investigação detalhada da rede. Você pode utilizar os dados de exemplo fornecidos para praticar, e entender as funcionalidades demonstradas.

 

Código VBA Completo

Como sempre, o código VBA está bem comentado, e a maioria das funções utilizadas já devem ser conhecidas por você, dos demais tutoriais.

Em caso de dúvidas, poste as dúvidas no Fórum – devido à enorme quantidade de Usuários Hunter, o suporte via Emails tornou-se praticamente impossível, contamos com a sua compreensão.

 

Tabela de Emails

Finalizando, nossos relatórios podem ser enviados por e-mail, e para isso, temos uma tabela auxiliar como os EMAIL’s dos destinatários. Um campo ‘SEND’ define se o email deve ser enviado ou não para cada destinatário.

 

Nota: o código busca os dados através da consulta ‘qry_Aux_Emails’ – que já faz o filtro do campo ‘SEND’.

 

Conclusão

Iniciamos hoje a série de módulos ‘Hunter Performance’, conhecendo uma forma rápida de apresentação dos dados da rede em tabelas formatadas (cores) e enviadas via email.

O objetivo dos módulos de Performance é apresentar para o profissional especializados os dados numa forma previamente processada, servindo tanto como informativo quanto investigativo.

O tempo deve ser gasto com a tomada de ações, e nunca com o processamento dos dados. A automatização dos Relatórios traz inúmeras vantagens, como rapidez, minimizaçao de erros, controle eficiente das ações na rede, entre outras.

Agradecemos a visita, e mais uma vez agradecemos àqueles que reconhecem o nosso esforço, e contribuem com a Doação para receber todo o Sistema Hunter.

Lembre-se sempre: o conhecimento que você adquire a cada tutorial pode representar o seu diferencial!