Os dados da transação geralmente são coletados para comparar aos limites ou para calcular as porcentagens periódicas eventuais de êxito. Por exemplo, a cada 5 minutos, uma transação virtual é executada em um sistema e o resultado (tempo de resposta em milissegundos) é armazenado, conforme mostrado a seguir:
[…] 1/1/2004 00:00 432 1/1/2004 00:05 560 1/1/2004 00:10 329 1/1/2004 00:15 250 1/1/2004 00:20 275 1/1/2004 00:25 2860 1/1/2004 00:30 140 […]
Em outras situações, em vez de usar transações virtuais, pode haver acesso a transações reais em execução no sistema. Nesses casos, centenas ou até milhares de transações podem ser realizadas por hora.
Em ambos os casos acima, o carregamento desse volume de informações no CA Business Service Insight deve ser evitado, se possível.
Agregar os dados por períodos é a melhor maneira de reduzir as quantidades de dados. Quando o limite que funciona como base para medir o êxito é fixo, a agregação pode ser executada permitindo que o conector conte o número de transações que tiveram êxito dentro do período agregado. Por exemplo, se o limite de êxito no exemplo anterior estiver definido como 500 milissegundos, apenas cinco de sete transações tiveram êxito durante o período exibido. O problema dessa abordagem é o limite fixo: e se, posteriormente, alguém desejar alterar o limite? Nesse caso, os dados brutos devem ser lidos e testados novamente pelo conector com base no novo limite.
Portanto, o ideal seria que o conector agregasse os dados da transação de uma maneira flexível sem perder os dados significativos.
Uma solução limitada é permitir que o conector teste as transações com base em vários limites. Há duas maneiras de fazer isso:
As duas opções têm o mesmo problema - os limites podem ser alterados no futuro apenas dentro de um pequeno conjunto de valores predefinidos.
Premissa - todos os possíveis limites são múltiplos de um determinado número. Por exemplo, todos os limites (em milissegundos) são múltiplos de 250, desse modo, 0, 250, 500, 1750 e 3000 milissegundos são possíveis limites.
Com base nessa premissa, a solução sugerida é agregar as transações, arredondando todos os valores para um múltiplo comum e contando o número de transações que se enquadram em cada valor arredondado. Event Type = {RangeFrom, RangeTo, TransactionCount}
Por exemplo, os seguintes eventos serão gerados para agregar os dados exibidos acima, onde o múltiplo comum é 250 milissegundos:
{1, 250, 2}
{251, 500, 3}
{501, 750, 1}
{751, 1000, 1}
Comentários:
A data e a hora desses eventos seriam as mesmas. (Por exemplo, todos os eventos agregados podem ocorrer em 1/1/2007 00:00, e pode haver outro conjunto de eventos para o próximo exemplo de hora, 1/1/2007 01:00, presumindo que houve a agregação de hora em hora.)
RangeTo é calculado arredondando uma transação para o múltiplo comum (consulte a seguir).
RangeFrom é RangeTo menos o múltiplo, mais 1. É especificado apenas para fins de clareza, e você pode ignorá-lo.
Por exemplo - agregar por hora pode ser semelhante ao seguinte (substituir MULTIPLE pelo valor do múltiplo):
select trunc (time_stamp, 'hh') "TimeStamp",
round (response_time/MULTIPLE, 0)*MULTIPLE-MULTIPLE+1 "RangeFrom",
round (response_time/MULTIPLE, 0)*MULTIPLE "RangeTo",
count (*) "TransactionCount"
from t_log
group by trunc (time_stamp, 'hh'),
round (response_time/MULTIPLE, 0)*MULTIPLE
Na lógica de negócios, a seguinte condição pode ser aplicada aos eventos:
If eventDetails("RangeTo")<=Threshold Then
SuccessfulTransactions=SuccessfulTransactions+eventDetails("TransactionCount")
End If
Algumas ideias conclusivas:
| Copyright © 2012 CA. Todos os direitos reservados. | Enviar email à CA Technologies sobre este tópico |