2015년 7월 24일 금요일

100% 데이터 오너쉽 오픈소스 웹 분석 툴 PIWIK 소개

웹분석(Web Analytics)하면 대략 GA(Google Analytics)를 많이 떠올린다.
GA의 사용 편의성과 기능은 매우 뛰어나고, 구글의 서포트와 함께 지속적으로 개선 중이다.
아카데미를 통한 교육에도 매우 적극적이다.
다만, 일정 이상의 트래픽에 대해서는 제약(유료라이센스필요)이 있으니 도입할때 주의하자.

영화 매트릭스에 보면,
에이전트들의 무자비한 강력함도 매트릭스 안에서 제한된다라는 문구가 있다.

관련해서,
 - 100%의 데이터 오너쉽 그리고 무료
 - 모든 요소에 대한 사용자 컨츄롤 가능
을 외치는 오픈소스 웹분석 플랫폼 PIWIK이라는 툴이 있다.
( 참조 : http://piwik.org/faq/new-to-piwik/faq_15/ )

실제로 DB 스키마부터 설명서까지 모든 것이 오픈되어 있다.

자체 서버 설치 과정은,
APM(Apache, PHP, MySQL)을 구성하고 PIWIK을 시작하면 된다.

웹분석의 레오가 되고 싶은가? PIWIK이 당신을 험난한 길로 인도할 것이다.

아래 내용은 AWS에서 PIWIK 서버를 더이상 운용할 수 없을 듯 해서,
간략하게 남아, PYTHON - PIWIK HTTP API 사용 예제를 작성한다.


In [1]:
# HTTP 질의를 위한 모듈 로딩
import urllib.request,json
import pandas as pd
In [2]:
# PIWIK API를 참조한 RESTful
# 어제를 기점으로 일주일 동안의 방문자 트래픽 정보를 질의
PIWIK_URL = '&'.join(['http://piwik/piwik/?module=API',\
          'method=API.getProcessedReport',\
          'idSite=3',\
          'date=yesterday',\
          'period=month',\
          'apiModule=VisitTime',\
          'apiAction=getVisitInformationPerLocalTime',\
          'format=json',\
          'token_auth='+token,\
          'filter_truncate=30',\
          'language=en'])
In [3]:
# HTTP API로 질의한 JSON 결과를 읽기
with urllib.request.urlopen(PIWIK_URL) as f:
    j = json.loads(f.read().decode('utf-8'))
In [4]:
# 시간대별로 방문자와 페이지 조회수 플롯
df = pd.DataFrame(j['reportData'])
df.plot(kind='bar',x='label',y=['nb_actions','nb_visits'],
        figsize=(9,4),color=['purple','orange'],alpha=.7)
title('PIWIK Result 01')
xlabel('hour')
ylabel('count')
grid()
Out[4]:
<matplotlib.text.Text at 0x7fdc73736c88>
PIWIK의 경우는 API 이외에, DB 질의 (SQL)을 통한 방법도 고려 할 수 있다.
( 오픈소스에서 당신의 상상력은 곧 현실이 된다. )

0 개의 댓글:

댓글 쓰기