Conhecendo a administração do Tfs_Warehouse e OLAP do TFS

Salve, salve galera….

Quando estamos customizando relatórios para o TFS ou criando novos, consumimos dados da base Tfs_Warehouse e do OLAP (Analyses Services), que de maneira bem simplista são as fontes próprias para essas situações.

Quando o assunto são relatórios, na grande maioria das vezes (nem todas, ok ?) são visões gerenciais e que quem extrai tem “certa pressa” não é mesmo ? :D . Olhando pela perspectiva de desempenho que sentido faria a todo momento os dados serem extraídos ? Quem já desenvolveu sabe que muita concorrência de leitura e escrita na mesma base gera lentidão. Para isso o TFS tem um mecanismo – JOBs – que atualiza essas bases a cada período de tempo, mas as vezes esse período de tempo não atende a necessidade ou então em uma situação pontual precisamos que dados sejam processados naquele momento. Como proceder nesses casos ? Como reconfigurar esse time ? Como forçar uma atualização manual ? É isso que quero mostrar hoje….

Para gerenciar esses recursos temos um webservice disponibilizado pelo TFS, onde podemos recuperar informações e atualiza-las. Para iniciarmos precisamos estar logados no servidor do TFS com um usuário que esteja no grupo de administradores do TFS. Para acessarmos esse webservice basta acessarmos a url:

http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx

Relação de Métodos

 

Ao acessarmos esse webservice teremos disponíveis algumas ações relacionadas às bases Tfs_Warehouse e OLAP, vou comentar sobre algumas OK ? As mais utilizadas no dia-a-dia e que são a grande maioria dos “solucionadores” de problemas.

Os dois primeiros métodos BringAnalysisProcessingOnlineBringWarehouseProcessingOnline quando executados retornaram o status atual do “serviço de processamento” podendo estes estarem Started, Stoped (totalmente parado) e Stoping (em processo de interrupção).

O próximo método é o ChangeSettings que permite alterarmos algumas configurações de processamento. Quando executarmos o método seremos questionados sobre qual configuração queremos alterar e qual o novo valor para ela

Método ChangeSettings

A tabela abaixo (extraída do site da microsoft) relaciona as possíveis configurações, seus valores default e uma breve descrição do que se trata o parâmetro.

Opções do ChangeSettings

 

ATENÇÃO: pessoal como tudo que se trata de customizações e modificações no TFS vale a máxima de só alterarmos o extramente necessário, essas mudanças podem (e vão) gerar consequências de performance no ambiente, por menores que sejam. Então tenhamos muito cuidado com essas mudanças.

O próximo método GetJobProperties, nos retorna as configurações das Jobs por collection e das Jobs comuns (que são as Jobs do Analyses Services e a Job que gerencia a estrutura do Warehouse).

Retorno do método GetJobProperties

Temos também o método GetSettings que retornará aquela relação de possibilidades com seus valores default e os valores que estão em produção.

Retorno do método GetSettings

Depois temos o ProcessAnalysisDatabase que, quando executado solicitara um parâmetro questionando qual o tipo de processamento, podemos informar FULL INCREMENTAL.

Quando falamos do processamento do cubo podemos sempre solicitar o processamento total (FULL) ou apenas as últimas modificações (INCREMENTAL) quando devemos forçar um ou outro: não existe uma regra para isso !!!! Mas em termos de recursos o Full consome muito mais e pode gerar uma sobrecarga no servidor dependendo do que queremos processar e o que estamos fazendo nele no momento.

Temos também o ProcessWarehouse que solicitará como parâmetro a Collection e o nome da Job que queremos processar ( as opções são as mesmas retornadas pelo método GetJobProperties).

Método ProcessWarehouse

 

De maneira bem prática temos como opções:

Build Warehouse Sync: dados referentes aos builds.
Common Structures Warehouse Sync: irá processar dados relacionados a estruturas de fields por exemplo, customizações, etc.
Test Management Warehouse Sync: dados de testes (execuções, falhas, cenários, etc).
Version Control Warehouse Sync: dados do version control (changesets, shelvesets, code reviews, etc).
Work Item Tracking Warehouse Sync: dados dos work itens (status, inclusões, etc).

Temos ainda os métodos SetAnalysisJobEnabledStateSetWarehouseJobEnabledState onde poderemos setar um status para as Jobs tanto do Analyses quanto do Warehouse respectivamente, esses status são Enabled or SchedulesDisabled (sem agendamento) ou FullyDisabled (totalmente desativado).

E por último temos os métodos TakeAnalysisProcessingOfflineTakeWarehouseProcessingOffline que desativaram por total o processamento do OLAP e do Warehouse respectivamente.

Pessoal espero que tenha ajudado e caso surja alguma dúvida sintam-se a vontade de enviar dúvidas, sugestões, reclamações, etc.

Abraço. Até a próxima.

 
Comments

No comments yet.