Metodologia de dados
Como o Alveos recolhe, guarda, transforma e identifica métricas de distribuição de software.
Princípios
Cada métrica deve nomear fonte, significado, atualidade, cobertura e transformação. Dados em falta permanecem em falta: o Alveos não preenche falhas com estimativas. «Oficial», «verificado» ou «independente» só é usado se a fonte realmente sustentar essa afirmação.
Classes de fonte
- Fonte pública do fornecedor: APIs ou listagens públicas como VS Code Marketplace, Open VSX, GitHub Releases, PyPI e Packagist.
- Conjunto de dados público / terceiro de confiança: conjuntos nomeados como PSF BigQuery ou PypiStats.
- Telemetria do produto: o produto ligado envia eventos de ciclo de vida ao Alveos (Beacon; Streaming Zebra em breve). Os números vêm do produto e da forma de contar do publisher — por eventos, não obtidos de um marketplace.
- Importação manual do publisher: por exemplo dados do Publisher Hub. Permanecem separados dos contadores públicos da Gallery.
Significado das métricas
O Alveos guarda o que a fonte entrega. O que não entrega não é capturado aqui.
| Fonte | Entregue e capturado | Falta |
|---|---|---|
| VS Code Marketplace (Gallery) | Contadores públicos (downloadCount, install, updateCount) — aquisição |
Instalações atualmente ativas: a Gallery não as dá; o Alveos não as captura aqui |
| Open VSX | downloadCount (transferências VSIX) |
Instalações ativas, utilizadores únicos, desinstalações: nem entregues nem capturados |
| GitHub Releases | download_count dos ficheiros de release |
Clones, repositórios privados, arquivos-fonte |
| PyPI / PypiStats | Transferências de ficheiros (série diária sem mirrors) | Utilizadores únicos e instalações, porque a fonte não os conta |
| Packagist | downloads.total / monthly |
Instalações e utilizadores únicos |
| Beacon / ciclo de vida | Eventos install, update, uninstall, usage e build do produto | Contadores de marketplace; uninstall muitas vezes incompleto |
| Publisher Hub (importação) | Dias de Daily Stats fornecidos pelo publisher | Não é SSOT da Gallery; VSIX do sítio só se o ficheiro tiver a coluna |
Contadores com significados diferentes não são apresentados em silêncio como a mesma métrica.
Recolha, atualidade e lacunas
O Alveos consulta as lojas públicas uma vez por dia às 05:20 Europe/Berlin. Guarda o dia UTC de hoje. Uma falha salta o dia, mantém o histórico e não escreve zeros. Gallery, Open VSX, GitHub, PyPI-JSON, PypiStats e Packagist não são preenchidos três dias para trás.
No gráfico: a partir do primeiro dia guardado, a linha contínua fica no último valor conhecido (step-hold). Se faltar uma consulta, o Alveos desenha o mesmo valor a tracejado — último stock, não uma previsão nem uma curva de tendência sobre os pontos reais. Os dias em falta na janela são marcados. Os dias anteriores à ligação não são lacunas.
Se o último dia bem-sucedido tiver dois ou três dias, a série está atrasada; a partir do quarto dia está obsoleta. É um rótulo de ecrã, não um preenchimento.
Duas exceções reescrevem dias recentes se a consulta seguinte funcionar: Streaming Zebra guarda D−2 e D−1 do resumo; países PyPI (BigQuery, tarifas pagas) reescrevem os últimos sete dias UTC. Importação e Beacon não são consulta diária e não contam como lacunas perdidas.
Transformações e comparabilidade
O Alveos conserva os inteiros brutos do fornecedor e identifica valores derivados: diferenças de contadores cumulativos, somas, rácios, importações e partições filtradas. Os canais de entrega direta e GitHub que podem descrever a mesma entrega permanecem separados. As atualizações Streaming Zebra e Beacon não são somadas duas vezes.
Exportações reproduzíveis
CSV e JSON incluem fornecedor, ID externo, classe, significado, início da cobertura, cadência, versão de transformação, URL e um hash SHA-256 da linha. Os snapshots históricos têm precisão de dia UTC: fetched_on contém o dia, time_precision é day, e fetched_at fica vazio em vez de inventar uma hora.
Referências de fornecedores
| Fonte | Consulta | Cadência |
|---|---|---|
| VS Code Gallery, Open VSX, GitHub Releases, PyPI-JSON, PypiStats, Packagist | O cron guarda o dia UTC de hoje | Diário 05:20 Europe/Berlin |
| Países PyPI (BigQuery, tarifas pagas) | Upsert dos últimos sete dias UTC | O mesmo cron |
| Streaming Zebra (em breve) | Resumo; repara D−2 e D−1 | O mesmo cron |
| Beacon | O produto envia | Por eventos, não consulta diária |
| Publisher Hub | Importação xlsx | Na importação |
- VS Code Marketplace
- Open VSX
- GitHub Release Assets API
- Dados públicos PyPI no BigQuery
- API Packagist
Correções auditáveis
Titulares e equipa com sessão indicam em Correções de dados uma ligação já guardada: um dia UTC, uma métrica (transferências, instalações ou atualizações), um inteiro proposto e um motivo. O pedido congela o valor bruto observado. Uma correção não preenche uma consulta falhada nem escreve uma estimativa numa lacuna. Não há importação de correções nem API de correção.
Outra pessoa tem de aceitar antes de os leitores verem o número novo. O snapshot do fornecedor permanece inalterado. Gráficos e totais leem a camada ativa. Um dia em falta continua a ser uma lacuna.
Marca na exportação
CSV e JSON mantêm as colunas de métricas. Numa linha corrigida são os valores da camada, não os inteiros obtidos do fornecedor.
| Coluna | Linha corrigida | Linha sem correção |
|---|---|---|
correction_applied |
1 |
0 |
correction_request_ids |
Ids dos pedidos aceites, separados por vírgulas | vazio |
corrected_fields |
installs, downloads e/ou updates |
vazio |
correction_original_json |
JSON dos inteiros do fornecedor substituídos, por exemplo {"downloads":120} |
vazio |
row_hash é o SHA-256 dessa linha de exportação, incluindo os números da camada e estas quatro colunas. Compare correction_original_json com o fornecedor quando precisar do inteiro obtido.
Perguntas ou possíveis erros nos dados: support@alveos.eu.