BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias JINSPIRED lança uma nova versão do OpenCore

JINSPIRED lança uma nova versão do OpenCore

OpenCore, uma ferramenta leve para monitaração de desempenho em Java feita pela JINSPIREDteve sua versão 6.0 disponibilizada esse mês.

OpenCore é uma biblioteca de monitoração de desempenho que foca em aplicações de baixa latência. Isso significa que ela tenta ter o mínimo de overhead possível. A biblioteca também especifica um modelo de integração que busca separar "casos", “medidas” e “medidor”. O caso é um começo e um final arbitrário na execução de um programa (por exemplo, o começo e o fim de um método). Um medidor é um exemplo de algum ponto no tempo de algo como por exemplo o uso de uma CPU ou o tempo do relógio. Uma medida é o resumo de alguns medidores em um conjunto de casos. Então, exemplificando, pode-se dizer “pesquise todas as entradas e saídas de método. Quando cada caso começar, então meça o tempo decorrido de cpu. Agora, verifique qual é o resultado da média de tempo de CPU por método.

De acordo com o OpenCore, a vantagem de separar em três é que o overhead pode ser minimizado para atividades que nunca irão ser medidas pois “Ao contrário de todas as outras soluções, não existe nenhuma referência explícita de como uma atividade é medida ou se seu disparo foi de fato medido – isso é controlado por configuração do medidor real em tempo de execução pelo administrador”.

HowTo do OpenCore descreve que, para usá-lo em um projeto basta seguir os seguintes passos básicos:

  1. Adicionar o agente nativo do OpenCore através dos seguintes argumentos via linha de comando: -agentpath e -javaagent (nota: Alguns dos agentes usam AspectJ)
  2. Adicionar alguns jars do OpenCore no classpath;
  3. Habilitar o JMX ;
  4. Criar um arquivo de configuração que especifica o que deve ser monitorado e como.

De agora em diante, o quanto que a aplicação se torna envolvida com o OpenCore depende de como ela foi configurada. Em seu nível mais básico, o OpenCore simplesmente captura a contagem de chamadas de método e reporta ao JMX. Todavia, o agente foi designado para ser plugável a fim de que os desenvolvedores possam habilitar métricas e estatísiticas embutidas mais sofisticadas, ou possam colocar suas próprias métricas customizadas que capturam qualquer coisa e reportam a qualquer parte.

A biblioteca alega ter um menor overhead, especialmente para instrumented métodos que foram “desligados”. Por exemplo, em um OpenCore-authored benchmark, VisualVM profilling (que está na SUN JDK) foi 2 a 3 vezes mais lento do que o OpenCore probes.

Além de servir para ser utilizado para simples diagnósticos de desempenho, o OpenCore também pretende “unificar múltiplas aplicacões, sistemas e negócios relacionados ao gerenciamento de domínio sobre um modelo”, isso significa que ele poderia ser usado automaticamente para monitoramento e ajuste de capacidades, medição de uso para chargeback, e rastreamento da conformidade do SLA ( service level agreement - acordo de nível de serviço(ANS)). Essa visão unificada, entretanto, depende do fabricante e adoção nos domínios da tecnologia OpenCore.

Futuras versões prometem ter monitoração de desempenho para linguagens que não rodam na JVM como .NET e Ruby nativo, Python e PHP, embora nenhuma data tenha sido especificada para a liberação da versão.

Finalizando, desenvolvedores podem notar que o OpenCore não está licenciado como um “open source” mas sim como “APIs documentadas publicamente com integração definidada e pontos de extensão”. Em uma discussão recente Willian Louth esclarece que OpenCore é um produto comercial.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT