Cdnjs: Sugestão - Publique estatísticas de download da biblioteca / números analíticos e gráficos

Criado em 22 mar. 2013  ·  36Comentários  ·  Fonte: cdnjs/cdnjs

O CDNJS controla quantas vezes os arquivos individuais são extraídos de seu CDN? Seria absolutamente incrível se o CDNJS fizesse isso e, em seguida, tivesse gráficos atualizados e tabelas de dados mostrando quantos downloads cada arquivo está obtendo.

Isso seria épico porque permitiria aos desenvolvedores escolher quais versões da biblioteca desejam que seus usuários baixem. O desenvolvedor gostaria de escolher a versão da biblioteca que é obviamente compatível com seu código, mas também escolheria aquela que é mais baixada no último período de X.

Por exemplo, digamos que o jQuery mais recente apenas seja lançado e colocado no CDNJS. Alguns dias se passam e as estatísticas do jQuery ficam assim na semana passada:

jQuery 1.9.1 = 20.000 downloads
jQuery 1.9.0 = 50.000 downloads
jQuery 1.8.3 = 560.000 downloads
jQuery 1.8.2 = 120.000 downloads
etc ...

O desenvolvedor pode olhar para isso e saber que é mais provável que seus visitantes já tenham o jQuery 1.8.3 armazenado em cache ao invés do 1.9.1, uma vez que é novo. Portanto, desde que seu código seja compatível com 1.8.3, eles escolheriam este.

E como esses números mudam com o tempo, talvez um mês depois o desenvolvedor volte ao CDNJS e veja agora que as estatísticas 1.9.1 são maiores do que 1.8.3, então, novamente, contanto que seu código seja compilador 1.9.1, ele poderia mudar com segurança seu site para usar o 1.9.1, pois agora é mais provável que seus visitantes já tenham o 1.9.1 em cache.

Isso faz sentido? Para mim, seria EXTREMAMENTE útil. O objetivo principal do CDNJS é que os desenvolvedores compartilhem bibliotecas e recursos. Portanto, com o tempo, à medida que mais e mais bibliotecas são adicionadas ao CDNJS e mais e mais versões dessas bibliotecas são adicionadas, seria inestimável ter uma ferramenta como esta para que os desenvolvedores tomem decisões informadas com base em quais bibliotecas e recursos são sendo mais compartilhado.


Quer apoiar este problema? Publique uma recompensa por isso! Aceitamos recompensas via Bountysource .

Help wanted ⛅️ Waiting for Cloudflare 📒 Documentation

Comentários muito úteis

Atualmente aguardando no Cloudflare para estabelecer uma maneira de termos acesso a estatísticas / log para o domínio cdnjs.cloudflare.com . Postarei atualizações assim que as obtiver.

Todos 36 comentários

@Jakobud Ótima sugestão, Jake. Você está absolutamente certo de que isso seria realmente útil, e é um pedido popular: https://github.com/cdnjs/cdnjs/issues/405

Estamos fazendo um brainstorming de soluções agora, então estamos felizes em ter você como parte da conversa.

Problema antigo encerrado # 405 continue a conversa aqui

Marcado como de alta prioridade, alguém ainda tem alguma ideia brilhante sobre como analisar alguns bilhões de linhas?

Quantas linhas tem o arquivo de log típico? Você divide os arquivos de log em um por dia ou menos? Os arquivos de log simplesmente dizem qual http: // caminho / arquivo foi baixado? Ou ele tem referências a ids de linha do banco de dados (ids de cada nome de arquivo que presumo estar armazenado em um banco de dados)?

Cada localização de borda (atualmente 23) é tratada independentemente umas das outras.

Então, o que temos é um ou mais arquivos de log por ponto de presença por dia, e nós
estão recebendo um número significativo de acessos.

Na sexta-feira, 28 de junho de 2013, Jake Wilson escreveu:

Quantas linhas tem o arquivo de log típico? Você divide os arquivos de log em
um por dia ou menor?

-
Responda diretamente a este e-mail ou visualize-o em Gi tHubhttps: //github.com/cdnjs/cdnjs/issues/1078#issuecomment -20125044
.

Se você pudesse postar trechos dos arquivos de log, seria um lugar para começar.

Algum progresso nisso? Vocês precisam de ajuda com isso? Eu sei que provavelmente existem muitos arquivos de log enormes, mas acho que seria apenas uma questão de um script simplesmente python que transmitisse os arquivos de log e salvasse os dados em um banco de dados ou algo parecido. Seria um processo demorado, mas provavelmente não seria tão complicado.

Para sua informação, não sei se cdnjs utiliza serviços AWS no back-end ou não, mas este é um artigo interessante que é potencialmente muito relevante para este problema:

http://aws.amazon.com/blogs/aws/all-your-data-fluentd/

Ele discute o uso de um software chamado Fluentd para transmitir as alterações do arquivo de log para o armazenamento de dados. Portanto, para CDNJS, ele poderia transmitir logs de acesso à biblioteca em algum tipo de banco de dados de uso que poderia ser usado para exibir estatísticas de uso.

Além disso, para sua informação, vocês poderiam conseguir alguém para ajudá-los com uma solução para isso se pudessem divulgar detalhes sobre seu registro. Como funciona, onde os arquivos são armazenados, nos dá acesso a um dia ou semanas de logs, etc ... Alguém poderia descobrir uma solução para você.

Outra sugestão para vocês, tornem seus logs públicos. Coloque-os no AWS S3 ou algo assim e permita que qualquer um os pegue. GARANTO que alguém (ou provavelmente várias pessoas) apresentará uma solução analítica para você.

Só queria entrar em contato sobre esse problema novamente. Vou dizer de novo, forneça alguns arquivos de log de exemplo e alguém em algum lugar irá montar um analisador para você que irá puxar as estatísticas de download da biblioteca.

ping @thomasdavis

Oh, ainda não temos estatísticas.

Criar um serviço de API para cdnjs seria bom. Algo como:

api.cdnjs.com/lib/jquery/stats

Então, podemos usar este serviço para buscar as estatísticas no site cdnjs. :trevo-de-quatro-folhas:

Estatísticas do site são fáceis, mas as pessoas querem as estatísticas do cdn, lembro que o cloudflare não nos deu essa informação ou log de acesso.

cc @thomasdavis @ryankirkman @terinjokes

Podemos obter acesso aos logs, mas o volume de log é tão grande que precisamos
descobrir uma estratégia de agregação
No domingo, 24 de maio de 2015 às 12h28 Peter Dave Hello [email protected]
escreveu:

Estatísticas do site são fáceis, mas as pessoas querem as estatísticas do cdn, eu me lembro
aquele cloudflare não nos deu essa informação ou registro de acesso.

cc @thomasdavis https://github.com/thomasdavis @ryankirkman
https://github.com/ryankirkman @terinjokes
https://github.com/terinjokes

-
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/cdnjs/cdnjs/issues/1078#issuecomment -104988412.

Estatísticas aproximadas seriam quase tão boas. Se o volume do log for um problema, os logs podem ser amostrados.

Isso é verdade! Mesmo um dia de tráfego * 30 seria interessante o suficiente.

Onde estão os logs agora? Eles são acessíveis de alguma forma? Eu pensaria que despejar logs diários em algum armazenamento S3 seria viável e, então, alguém poderia escrever algo que os analisasse.

Eu ficaria animado em escrever uma ferramenta para analisar os logs! De qualquer forma, estou envolvido em alguns projetos de estatísticas e visualizações, o que seria incrível. : faísca:

Como eu disse antes, tudo o que o CDNJS precisa fazer é tornar os logs acessíveis de alguma forma, e alguém se encarregará de escrever um analisador legal para gerar estatísticas de uso.

Estamos fazendo agora, o endereço IP no log será sensível, deve ter cuidado.

alguma atualização disso? Jogando meu chapéu no ringue como outra pessoa que estaria disposta a escrever um analisador.

Olá, queridos, infelizmente não, existem algumas questões mais importantes, mas faremos o possível para ter esse recurso o mais rápido possível.

BTW, obrigado por caras que querem escrever analisador para nós, se você não se importa, você ainda pode contribuir para outras partes do cdnjs, como bower auto-atualizador ou algo assim, obrigado!

Mais alguma atualização sobre este? Já se passaram 2 anos e meio. Vocês já pensaram em tornar seus logs acessíveis publicamente de alguma forma?

Ajude-nos Ajude você!

embora ping @thomasdavis @ryankirkman @terinjokes @drewfreyling ...

Ei, então eu sei que no # 405 o problema era dinheiro. Os logs estão em formato comum, no entanto, para obter os logs de 5 milhões de acessos, custa US $ 300 por dia ou algo parecido. (2 anos e meio depois, vocês provavelmente conseguem MAIS de 5 milhões de acessos por dia).

Portanto, a solução lançada foi configurar uma análise em uma instância EC2. Essa seria a melhor solução. Contanto que sua instância EC2 esteja na mesma região que seu contêiner S3, não há custo para transferir seus arquivos de log do S3 para sua instância EC2.

Então, essencialmente, a solução seria ter algum tipo de tarefa diária que aconteça:

  1. A instância EC2 é inicializada
  2. O script extrai os registros das últimas 24 horas do contêiner S3
  3. O script analisa os registros
  4. Script exclui log local
  5. O script despeja os dados em qualquer forma que você quiser em algum banco de dados em algum lugar
  6. O script termina a instância EC2

Portanto, este seria um custo mínimo absoluto. Você só pagaria pelo tempo em que a instância estivesse ativa. Agendar uma instância EC2 para ativar a cada 24 horas não deve ser muito difícil. E tenho certeza de que você pode encerrar automaticamente uma instância do EC2 programaticamente.

Apenas um pensamento. Honestamente, não seria terrivelmente difícil de descobrir ...

Na verdade, uma solução ainda melhor seria usar o AWS Data Pipeline

http://aws.amazon.com/documentation/data-pipeline/

E AWS Elastic Map Reduce

https://aws.amazon.com/elasticmapreduce/

Essas ferramentas são feitas para fazer exatamente o que vocês precisam fazer: analisar dados / logs de maneira econômica.

Oi Jake,

A solução que você propôs é muito elegante, mas infelizmente não usamos
Cloudfront para hospedar o CDN mais. Cloudflare é a rede primária
fornecedor.

Quanto à solução de estatísticas, ainda não temos uma boa resposta, desculpe Jake.
Na quinta-feira, 19 de novembro de 2015 às 9h35, Jake Wilson [email protected]
escreveu:

Na verdade, uma solução ainda melhor seria usar o AWS Data Pipeline

http://aws.amazon.com/documentation/data-pipeline/

E AWS Elastic Map Reduce

https://aws.amazon.com/elasticmapreduce/

Essas ferramentas são feitas para fazer exatamente o que vocês precisam fazer: Analisar
dados / logs de maneira econômica.

-
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/cdnjs/cdnjs/issues/1078#issuecomment -158129912.

@ryankirkman podemos avaliar o tamanho do disco que precisamos por dia, e talvez eu possa encontrar o armazenamento.

Os logs do Cloudflare estão acessíveis para você de alguma forma, para download ou por meio de uma API ou qualquer coisa? Além disso, preços de transferência EC2:

Transferência de dados IN para Amazon EC2 da Internet $ 0,00 por GB

https://aws.amazon.com/ec2/pricing/

Portanto, suponho que isso significa que você pode puxar programaticamente os logs do Cloudflare e analisá-los ou fazer o que quer que seja e ainda só custaria pelo tempo que a instância EC2 está ativa.

Parece que o problema está estagnado. Existe agora uma solução alternativa / viável para determinar as estatísticas ou porcentagens de uso da biblioteca?

Tomando o exemplo do jQuery - como proprietário de um site, você se preocupa com a porcentagem de usuários que chegam com a versão necessária do jquery já armazenada em cache, e quaisquer estatísticas que os cdnjs possam fornecer seriam ótimas para determinar isso.

Atualmente aguardando no Cloudflare para estabelecer uma maneira de termos acesso a estatísticas / log para o domínio cdnjs.cloudflare.com . Postarei atualizações assim que as obtiver.

Observado em # 6186, estatísticas mais detalhadas seriam úteis, como análises por país.

@dknecht Podemos usar este problema para rastrear quaisquer atualizações em outras estatísticas / registros de acesso ao domínio cdnjs.cloudflare.com . Obrigado :)

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

dsinkey picture dsinkey  ·  5Comentários

sufuf3 picture sufuf3  ·  3Comentários

zytzagoo picture zytzagoo  ·  3Comentários

olafcm picture olafcm  ·  5Comentários

ulyan picture ulyan  ·  6Comentários