开源项目

AnotherKafkaMonitor: Kafka性能监控平台

开源了一款Kafka监控工具 AnotherKafkaMonitor ,直接贴上README.me。
===========

Inspiration
AnotherKafkaMonitor is an app which used to monitor kafka producer and consumer progress inspried by KafkaOffsetMonitor. It aims to help you figure out what’s going on in your kafka cluster, that’s to say, to understand how fast the producer send message to the kafka or whether the consumer is far behind the producer or not, if lag exceeds threshold, you will be noticed through alarm email.

How To Install
Several ways can be taken if you want to try

  1. Extract AnotherKafkaMonitor.war into default folder called AnotherKafkaMonitor;
  2. Edit file which located in path of  \AnotherKafkaMonitor\WEB-INF\classes\system-config.properties, In corresponding with your Zookeeper and Kafka Cluster Environment;
  3. Move folder AnotherKakfaMonitor to <TOMCAT_HOME>\webapp;
  4. Start tomcat, type http://localhost:<TOMCAT_HTTP_PORT>/AnotherKafkaMonitor into browser, please enjoy.
  • Maybe you want to make some change for your taste
  1. Download the zip file;
  2. Import into your IDE, like Eclipse or others as you like.

(更多…)

大数据Hive之入门必备

在「聊聊大数据平台的典型应用场景」这篇文章中介绍了团队目前搭建大数据平台的实践,以及如何在实际生产环境中应用我们的大数据平台也就是寻找典型的应用场景。至于Hadoop生态系统中的Hive工具则是点到为止,并没有展开详细讨论,在这边文章中我们来入门Hive,了解Hive工具的作用,执行原理,数据类型以及数据模型。

引用官网的一段说明

The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driver are provided to connect users to Hive.

Hive本质上是一个数据仓库,但不存储数据(只存储元数据),用户可以借助Hive使用sql对存储在分布式文件系统中的大数据集进行读写。

(更多…)

聊聊大数据平台的典型应用场景

说起大数据总是感觉听得多,实践的少,所以谈不上有什么认识,很是遗憾。然前一段时间刚好接手团队内部「数据服务线」的工作,筹划搭建大数据平台,埋藏在心底的那股劲儿又被唤起,提枪上马开干。

整个大数据集群大概有十几台虚拟机,安装Hadoop生态系统的开源工具,具体工具如下:

(更多…)

Druid|Oracle: 防火墙对连接的影响

这篇文章是继上一篇文章Eclipse|Maven: 查看3rd jar源码提到了应用无响应的问题,现在这篇文章对该问题进行一个回顾。

现象:虚拟账户产品投产之后,观察到这么一个现象:在无人访问应用一段时间之后(应该是两小时左右),再次访问应用时,后台db日志显示一直在opening jdbc connection...,程序卡死,过16分钟之后,程序正常执行,后台db日志显示已经获取到了新的数据库有效连接;

(更多…)

自建Piwik-All Websites Dashboard页面

Piwik是一款开源流量监测工具,好用好看好配置,好处自然不用多说。但也有一些小问题,私以为Piwik的可配置参数项还不够多。

前端时间一直在纠结如何在「所有网站」这个页面上加上「访客数」这个指标,一通翻找Piwik源码,发现水有点深,另外考虑到以后的升级,所以在想如果我把它的源码给改了,那以后方便的一键升级是不是玩不转了,或者说升级之后又需要重新再修改一遍,经过重重考虑,决定还是绕道,既然Piwik这么强大,提供的API如此丰富,何不如再写一个自己的「所有网站」页面,展示自己认为比较重要的检测指标,这种灵活性是不是爆棚,所有就自己写了一个「所有网站」的Dashboard页面。

Installation

项目源码下载到本地之后,如果需要跑起来,还需要修改这么几个地方:

  1. ~/js/piwik-tongji.js中的http://www.yourpiwikserver.com替换成你自己Piwik的服务器地址,token_auth请替换成你自己Piwik的授权码;
  2. 如果想要在本地进行测试,并且你的Piwik并没有安装在本地,那么还涉及到一个跨域的问题,可以在Chrome的浏览器里面装一个插件Allow-Control-Allow-Origin: *

Need to be done

1、还是有很多值得优化的地方,比如页面布局

At Last

最后上一张效果图(好像有点以假乱真):
QQ20151119-1@2x

Piwik实践入门介绍

Background

最近团队内部想利用piwik作为网站流量分析工具,刚好借此机会接触之,用过之后才发现,piwik强大又精细,强大之处表现在其功能性完全可以媲美主流的商用流量分析工具,如Google Analystics,百度流量统计等;精细之处表现在给用户很强的惊喜感,体验到很多意想不到的细节,用户接触之后自有体会。可以在线体验:ONLINE DEMO,写这篇文章的目的在于总结这几天的学习心得,算是一个回顾,也把在学习研究过程中遇到的困惑进行记录。

Install

安装分『安装需要满足的条件』和『安装过程』,同时官网还提供了安装视频,这一切尽在:Installation

New to piwik

官网上该板块的主要目的是带新用户进入piwik的世界,了解piwik的工作机制甚至会涉及到与同类型的流量统计工具的横向比较,是新用户了解piwik的最好实践:New to Piwik

How to

该板块主要介绍如何玩转piwik,包括如何定制个性化变量,如何提高piwik运行的性能等等一系列让你更深入玩转piwik的相关建议和最佳实践:How to

Troubleshooting

不管你是新用户还是历史悠久的老用户,这里一定是会来逛逛的,可以说该板块是问题集,遇到问题是不可避免的,不妨来这里看看,或许前人已经给出了很好的解答:Troubleshooting

一些思考的问题(Q&A)

1、访问次数,访客数(独立),浏览次数如何确定?
1)浏览次数基于追踪的js代码有没有被加载,加载则+1,建议把追踪代码放在公共页面;
2)访问次数表示访问被监测网站的用户数(用户不去重);基于first party uuid和ip,session过期之后,重新生成uuid,访问次数+1;
3)访客数指独立访客数,在访问次数的基础上去掉重复的用户;基于ip地址的启发式算法;

2、PIWIK页面打开速度很慢?
官网提到的可能原因是:在默认情况下,piwik实时处理用户发出的请求(页面点击操作)生成报表进行展示,所以后台计算以及页面渲染展示的时间会比较长。
解决方案是:在crontab中设置定时任务,定时进行报表的归档。理论上可以提高访问速度,设置定时任务

3、访客数如果想汇总体现,如何在页面提现?
开启相关标志位即可:

在默认情况下,出于性能的考虑,piwik关闭了按年和按指定的时间段进行访客数统计的功能,因为按年和按指定时间段进行访客数统计时,需要实时去扫描piwik的log,所以耗时很长,对高流量的网站来说,可能需要长达几分钟的处理时间。

Reference

  1. http://piwik.org/

中美日韩四国Github开发者比较

  • Background

越来越多的开发者开始使用Github工具,在这之前谁都没法预估一个代码托管网站会收到追捧,受由InfoQ推出的2015年GitHub中国开发者年度分析报告的启发,想做一份关于中美日韩(为什么选择这四个国家,理由是这几个国家跟中国的关系最微妙,呵呵,瞎扯,其实我是随便选了这四个国家)四国的开发者比较文章。

  • 四国开发者数量比较

通过调用Github API来获取每个国家的开发者数量,数据在一定程度上可能会少算导致不够准确,因为API中根据location这个属性去定位开发者所属的国家,而location这个参数值是可选的,如果开发者未填写此项,那么这部分用户将不会被统计在内。具体发起的HTTP GET请求如下:

https://api.github.com/search/users?q=location:china

分别获取了这四个国家的开发者数量,虽然数据在某种程度上并不能保证准确,但不影响其参考意义,四国开发者数量对比图如下所示:

cukj
从上图可以得知,国内开发者数量已经超越美国,处在排头兵的位置,Github在国内开发者社区中的受欢迎程度可见一斑。

  • 四国开发者使用语言分布情况

通过有针对性的选择当前比较主流的开发语言:Javascript,Java,Php,CSS,Swift,Python,Ruby,Perl,Shell,C,了解四国开发者的语言使用情况。

language-china

language-usa

language-japan

language-korea
以上四图分别展示了中美日韩四国开发者的语言使用情况(备注:开发语言所对应的扇区面积越大,表示对应的开发者数量越多),我们似乎能够比较确信的获知以下几点信息:

  1. 纵观统计图可以发现,前台语言Javascript稳固开发语言第一,Js和Java开发者数量占据所有开发者数量的50%以上,尤其是中韩,两者呈现着势均力敌的效果,而美日两国虽然Js和Java开发者占比很大,但Js明显比Java更受开发者喜爱。
  2. 排在Js和Java语言之后的Python,PHP和Ruby不相上下,PHP一直保留着大块江山,目前已推出PHP7;Python和Ruby作为后起之秀,具备动态快速开发的优势,越来越成为开发者的心头之好。
  3. 样式语言CSS的出现有点出乎意料之外,在老旧的思维习惯里,似乎有点轻视它;但细细想来,在如今把用户体验当尚方宝剑的产品设计里面,样式不重要才见的奇怪呢,不知从哪年起,UX方面的人才突然变得非常受欢迎,同时轻框架,重设计的提倡也带来用户体验的变革,这对用户来说必然是一件好事,同时也傲娇到再也不需要去迎合老旧,土鳖的设计习惯,因为当下应用产品正在经历着从匮乏到丰富到五彩缤纷到争雄逐鹿到你死我活的变革,真是虐死一堆产品汪的节奏。好了,有点跑题,只是想说UX被越来越重视着。
  • Github中国开发者区域分布图

这似乎是一个已知的事实,用下面的这幅图说话吧。
china-fenbu
没有歧视其他省份开发者的意思,只是有针对性的选择了这几个我认为开发者相对集中的区域(见着色区域,颜色越深,代表开发者数量越多),这幅图不过是在确认一个事实:北上广深依然有绝对优势的开发者,这些一线城市凭借其综合因素仍然吸引着大批开发者前往,但不可否认的是杭州作为一座时尚美丽干净的城市,尤其是近几年互联网的火热让杭州有赶超一线城市开发者的趋势。

  • Ending

这只是作为我业余时间产生的一个衍生品,数据来自官方(All Data From Github),但不代表任何人,任何组织,我只是觉得好玩而已,并且这篇文章也只是从量上进行一个横向比较,没多少有价值的东西,业余有精力再多挖掘一点有意思的东西分享给大家,就这样。

  • Reference
  1. http://ecomfe.github.io/echarts/index-en.html
  2. https://developer.github.com/v3/search/