Verificar Métricas do Serviço
Este guia demonstra como verificar as métricas de consumo do serviço, as seguintes métricas estão disponíveis:
- Métrica Global de tempo de resposta de todos os provedores com tempo minimo, máximo e média.
- Métrica por provedor de tempo de resto com tempo minimo, máximo e média.
- Métrica Global de tipo de duplo fator consumido de todos os provedores separados por sucesso, falha e total.
- Métrica por provedor de tipo de duplo fator consumo separados por sucesso, falha e total.
- Métrica Global de análise de risco de todos os provedores separados por sucesso, falha, total e valores dos scores.
- Métrica por provedor de análise de risco separados por sucesso, falha, total e valores dos scores.
Observação: Mais métricas poderão ser adicionadas em versões futuras.
Para verificar as metricas do serviço siga os seguintes procedimentos:
Utilizando a API
/api/metrics
será retornado uma resposta no formato JSON com todas as informações necessárias.Exemplo utilizando o comando
curl
:curl --user "admin:[SENHA DO ADMIN DEFINIDA DURANTE A INSTALAÇÃO]" "https://[IP OU HOSTNAME (FQDN)]/api/metrics"
A Resposta irá se parecer com esta:
{ "contents": [ { "rel": [ "urn:mfao:metrics:ttr" ], "title": "Metrics for Time to Respond of Providers (Last 1000 Requests)", "values": { "global": { "mfa-provider": { "avg": 0, "max": 0, "min": 0 }, "notification": { "avg": 0, "max": 0, "min": 0 }, "risk-provider": { "avg": 0, "max": 0, "min": 0 }, "user-store": { "avg": 0, "max": 0, "min": 0 } }, "mfa-providers": {}, "notifications": {}, "risk-providers": {}, "user-stores": {} } }, { "rel": [ "urn:mfao:metrics:otp" ], "title": "Metrics for OTP consumption", "values": { "global": { "failed": 0, "successful": 0, "total": 0 } } }, { "rel": [ "urn:mfao:metrics:totp" ], "title": "Metrics for TOTP consumption", "values": { "global": { "failed": 0, "successful": 0, "total": 0 } } }, { "rel": [ "urn:mfao:metrics:hotp" ], "title": "Metrics for HOTP consumption", "values": { "global": { "failed": 0, "successful": 0, "total": 0 } } }, { "rel": [ "urn:mfao:metrics:motp" ], "title": "Metrics for MOTP consumption", "values": { "global": { "failed": 0, "successful": 0, "total": 0 } } }, { "rel": [ "urn:mfao:metrics:risk" ], "title": "Metrics for Risk consumption", "values": { "global": { "0-20": 0, "20-40": 0, "40-60": 0, "60-80": 0, "80-100": 0, "failed": 0, "successful": 0, "total": 0 } } } ] }
Como filtrar o resultado?
- Tempo de Resposta dos Componentes Orquestrados
# | Componente | URN | Tipo | JSONPath |
---|---|---|---|---|
1 | mfa-provider | urn:mfao:metrics:ttr | avg | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.mfa-provider.avg |
2 | mfa-provider | urn:mfao:metrics:ttr | max | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.mfa-provider.max |
3 | mfa-provider | urn:mfao:metrics:ttr | min | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.mfa-provider.min |
4 | notification | urn:mfao:metrics:ttr | avg | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.notification.avg |
5 | notification | urn:mfao:metrics:ttr | max | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.notification.max |
6 | notification | urn:mfao:metrics:ttr | min | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.notification.min |
7 | risk-provider | urn:mfao:metrics:ttr | avg | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.risk-provider.avg |
8 | risk-provider | urn:mfao:metrics:ttr | max | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.risk-provider.max |
9 | risk-provider | urn:mfao:metrics:ttr | min | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.risk-provider.min |
10 | user-store | urn:mfao:metrics:ttr | avg | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.user-store.avg |
11 | user-store | urn:mfao:metrics:ttr | max | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.user-store.max |
12 | user-store | urn:mfao:metrics:ttr | min | $.contents[?(@.rel[0] == 'urn:mfao:metrics:ttr')].values.global.user-store.min |
Observação: Você pode filtrar por provedor específico alterando o
.values.global.<provider-type>
por.values.<provider-type>.<id>
- Métricas de Consumo de MFA e Análise de Risco
# | Componente | URN | Tipo | JSONPath |
---|---|---|---|---|
1 | OTP | urn:mfao:metrics:otp | failed | $.contents[?(@.rel[0] == 'urn:mfao:metrics:otp')].values.global.failed |
2 | OTP | urn:mfao:metrics:otp | successful | $.contents[?(@.rel[0] == 'urn:mfao:metrics:otp')].values.global.successful |
3 | OTP | urn:mfao:metrics:otp | total | $.contents[?(@.rel[0] == 'urn:mfao:metrics:otp')].values.global.total |
4 | TOTP | urn:mfao:metrics:totp | failed | $.contents[?(@.rel[0] == 'urn:mfao:metrics:totp')].values.global.failed |
5 | TOTP | urn:mfao:metrics:totp | successful | $.contents[?(@.rel[0] == 'urn:mfao:metrics:totp')].values.global.successful |
6 | TOTP | urn:mfao:metrics:totp | total | $.contents[?(@.rel[0] == 'urn:mfao:metrics:totp')].values.global.total |
7 | HOTP | urn:mfao:metrics:hotp | failed | $.contents[?(@.rel[0] == 'urn:mfao:metrics:hotp')].values.global.failed |
8 | HOTP | urn:mfao:metrics:hotp | successful | $.contents[?(@.rel[0] == 'urn:mfao:metrics:hotp')].values.global.successful |
9 | HOTP | urn:mfao:metrics:hotp | total | $.contents[?(@.rel[0] == 'urn:mfao:metrics:hotp')].values.global.total |
10 | MOTP | urn:mfao:metrics:motp | failed | $.contents[?(@.rel[0] == 'urn:mfao:metrics:motp')].values.global.failed |
11 | MOTP | urn:mfao:metrics:motp | successful | $.contents[?(@.rel[0] == 'urn:mfao:metrics:motp')].values.global.successful |
12 | MOTP | urn:mfao:metrics:motp | total | $.contents[?(@.rel[0] == 'urn:mfao:metrics:motp')].values.global.total |
13 | RISK | urn:mfao:metrics:risk | failed | $.contents[?(@.rel[0] == 'urn:mfao:metrics:risk')].values.global.failed |
14 | RISK | urn:mfao:metrics:risk | successful | $.contents[?(@.rel[0] == 'urn:mfao:metrics:risk')].values.global.successful |
15 | RISK | urn:mfao:metrics:risk | total | $.contents[?(@.rel[0] == 'urn:mfao:metrics:risk')].values.global.total |
Observação: Você pode filtrar por provedor específico alterando o
.values.global.<provider-type>
por.values.<id>