Pular para conteúdo

Analytics

Obter estatísticas de acesso a um domínio.

OBS: Os dados de transferência são retornados em KB e dados relacionados a tempo em timestamp.

Importante!

Os parâmetros from e to devem ser preenchidos com o inicio e o fim do intervalo o qual você deseja receber os dados, utilizando o formato UNIX Timestamp.

GET /v1/analytics/{dominio}?graph={graph}&interval={interval}&from={from}&to={to}&host={subdomain}

Exemplo de request

$ curl -i "https://api.gocache.com.br/v1/analytics/seudominio.com.br?graph=custom&interval=1h&from=1546308000&to=1546315000&host=blog.seudominio.com.br" /
-H 'GoCache-Token:seu_token'
<?php

$ch = curl_init("https://api.gocache.com.br/v1/analytics/seudominio.com.br?graph=custom&interval=1h&from=1546308000&to=1546315000&host=blog.seudominio.com.br");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($ch, CURLOPT_HTTPHEADER, array("GoCache-Token: seu_token"));

$response = curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);
?>

Parâmetros

Campo Tipo Opcional Descrição
graph String Valores permitidos: custom, current-month, last-month
interval String Intervalo dos dados de estatísticas de acesso, valores permitidos: 1min, 1h, 4h, 12h, 1d
host String Permite filtro por subdomínio. O valor deve ser o subdomínio completo (ex: www.seudominio.com.br)
from Number Horário inicial dos dados de estatísticas de acesso (em formato unix timestamp)
to Number Horário final dos dados de estatísticas de acesso (em formato unix timestamp)

Exemplo de sucesso

HTTP/1.1 200 OK {
    "status_code": 1,
    "response": {
      "requests": {
       "status_group": {
        "3xx": {
          "total": [0,3]},
        "4xx": {
          "total": [0,0]},
        "5xx": {
          "total": [0,0]},
        "1xx": {
          "total": [3,4]},
        "2xx": {
         "total": [56,20]}
        },
       "ratelimit": {
        "challenge": {
         "total": [0,0]},
        "count": {
         "total": [0,0]},
        "simulate": {
         "total": [0,0]},
        "challenge_success": {
         "total": [0,0]},
        "challenge_failed": {
         "total": [0,0]},
        "block": {
         "total": [0,0]},
        "whitelist": {
         "total": [0,0]}
       },
       "status_code": {
        "404": {
         "total": [0,0]},
        "401": {
         "total": [0,0]},
        "503": {
         "total": [0,0]},
        "499": {
         "total": [0,0]},
        "400": {
         "total": [0,0]},
        "504": {
         "total": [0,0]},
        "502": {
         "total": [0,0]},
        "500": {
         "total": [0,0]},
        "301": {
         "total": [0,0]},
        "403": {
         "total": [0,0]},
        "302": {
         "total": [0,0]},
        "304": {
         "total": [0,3]}
        },
       "smartrule": {
        "challenge": {
         "total": [0,0]},
        "accept": {
         "total": [0,0]},
        "challenge_failed": {
         "total": [0,0]},
        "challenge_success": {
         "total": [0,0]},
        "block": {
         "total": [0,0]}
       },
       "waf": {
        "challenge": {
         "total": [0,0]},
        "challenge_success": {
         "total": [0,0]},
        "challenge_failed": {
         "total": [0,0]},
        "simulate": {
         "total": [0,0]},
       "block": {
         "total": [0,0]}
      },
      "firewall": {
       "accept": {
        "total": [0,0]},
       "block": {
        "total": [0,0]}
      }
      },
      "stats": {
       "status_group": {
        "3xx": 3,
        "4xx": 0,
        "5xx": 0,
        "others": 0,
        "1xx": 7,
        "2xx": 76
     },
     "req_per_sec": {
      "total": {
        "avg": 0.011944444444444,
        "max": 0.016388888888889
      }
     },
     "requests": {
      "total": 86,
      "user": 86,
      "3lcloud": 0,
      "optimized": 0
     },
     "firewall": {
      "accept": 0,
      "block": 0
     },
     "smartrule": {
      "challenge": 0,
      "accept": 0,
      "challenge_failed": 0,
      "challenge_success": 0,
      "block": 0
     },
     "cache_coverage": {
      "uncacheable": 10,
      "cached": 0,
      "uncached": 76
     },
     "avg_req_size": {
      "total": 3.0982807957849
     },
     "ratelimit": {
      "cdn": 0,
      "count": 0,
      "simulate": 0,
      "challenge_success": 0,
      "challenge_failed": 0,
      "block": 0,
      "user": 0,
      "challenge": 0,
      "whitelist": 0
     },
     "bandwidth": {
      "ratio": {
        "optimized": 0
      },
      "user": 266.4521484375,
      "optimized": 0,
      "unoptimized": 0,
      "3lcloud": 0,
      "total": 266.4521484375
     },
     "latency": {
      "html": 2.3808,
      "non_html": 0.30138271604938
     },
     "waf": {
      "challenge": 0,
      "challenge_success": 0,
      "challenge_failed": 0,
      "simulate": 0,
      "block": 0
     },
     "pageviews": {
      "user": 5,
      "3lcloud": 0,
      "total": 5
     }
     },
     "metadata": {
      "start_point": 1624046400,
      "end_point": 1624050000,
      "interval": 3600,
      "server_time": 1624052784.601
     },
     "traffic": {
     "bandwidth_per_sec": {
      "total": [0.052033333333333,0.55429333333333],
      "3lcloud": [0,0],
      "user": [0.052033333333333,0.55429333333333]
     },
     "req_per_sec": {
      "total": [0.016388888888889,0.0075],
      "3lcloud": [0,0],
      "user": [0.016388888888889,0.0075]
     },
     "requests": {
      "3lcloud": [0,0],
      "total": [59,27],
      "optimized": [0,0],
      "user": [59,27]
     },
     "bandwidth": {
      "total": [22.8662109375,243.5859375],
      "optimized": [0,0],
      "3lcloud": [0,0],
      "unoptimized": [0,0],
      "user": [22.8662109375,243.5859375]
     },
     "pageviews": {
      "total": [0,5],
      "3lcloud": [0,0],
      "user": [0,5]
     },
     "latency": {
      "html": [0,2.3808],
      "non_html": [0.31713559322034,0.25913636363636]
     },
     "avg_req_size": {
      "total": [0.38756289724576,9.0217013888889]
     }}}}
<?php

if( $statusCode == 200 ) {

    echo("Sucesso!\n");

    $obj = json_decode($response);

    echo("Requisições economizadas: " . sprintf("%.2f", 100.0 * ($obj->response->stats->requests->{"3lcloud"} / $obj->response->stats->requests->total)) . "%\n");

}
?>

Retenção de dados

Os intervalos de dados estatísticos possuem diferentes tempos de retenção. Segue uma lista do tempo máximo em que os dados granulares ficam disponíveis para consulta:

Intervalo Retenção
1min 7 dias
1h 30 dias
4h 30 dias
12h 30 dias
1d 1 ano