naver / kaist-oss-course

Introduction to Open Source Software class @ KAIST 2016
38 stars 9 forks source link

[ARCUS] hubble에서 특정 cache cluster 정보 조회 기능 추가 #61

Open jhpark816 opened 8 years ago

jhpark816 commented 8 years ago

Arcus hubble(https://github.com/naver/arcus-hubble) 에서 특정 cache cluster 정보만을 focusing하여 조회하는 기능이 필요하다.

아래의 페이지들이 추가로 필요합니다

Hubble main page에서

summerbell commented 8 years ago

제가 한 번 해보고 싶습니다

MinWooJin commented 8 years ago

develop 브랜치 기준으로 작업하시고, pull request도 develop 브랜치 기준으로 보내주세요.

minkikim89 commented 8 years ago

수업 이후 가이드가 필요할 것 같아서 해당 이슈에 대한 가이드를 작성합니다.

이 이슈는 간단히 말해서 Hubble 내에서 cache cluster의 상태를 확인하기 위한 이슈입니다. arcus는 zookeeper에 등록된 service code로 cache cluster를 관리합니다. 현 상태의 hubble은 service code를 선택하고 해당 service code가 관리하는 cluster의 node를 추가로 선택함으로서 각 노드들의 stats를 그래프로 확인할 수 있습니다. 하지만 Hubble 내에서 stats이 아닌 cache cluster 들의 전체적인 상태나 설정 정보들은 한눈에 볼 수가 없는 상태입니다.

해당 기능을 구현하는 것이 이 이슈의 목표입니다. Hubble 로고 우측에 버튼(?)을 만들어 새로운 페이지로 연결하고 새 페이지에서 cache cluster list를 확인 할 수 있어야하고 이 cluster list와 연결하여 node들의 상태(active, inactive)와 설정 정보(max conns, version.. 등)를 확인할 수 있어야합니다. (한 페이지에서 cluster list와 해당 cluster들의 node 정보까지 다 보여줘도 되고, cluster list만 보여주는 페이지와 해당 페이지에서 cluster를 선택하여 cluster의 node들에 대한 정보를 보여주는 페이지 두개로 나누어서 진행해도 됩니다.) 이렇게 구현된 페이지에서 사용자가 특정 node를 선택했을 시에는 원래 Hubble 페이지로 돌아와 해당 node의 정보를 그래프로 보여주게 하는 것이 마지막입니다.

이 가이드만으로 작업하는 데에 문제가 없을지 모르겠네요. 혹시 이해가 잘 안가는 부분이나 개발 시에 문제가 발생하면 코멘트 달아주세요.

MinWooJin commented 8 years ago

@summerbell 가이드 확인 해주시고, 진행중 이시면 현재 상태 알려주시면 감사하겠습니다.

summerbell commented 8 years ago

가이드 확인했습니다 제가 실습 프로젝트부터 해보느라 컨트리뷰션을 미뤄두고 있었는데 오늘 저녁에 진행해보고 내일 다시 진행상황 보고하겠습니다..!!ㅠㅠ

      1. 오후 1:03에 "MinWooJin" notifications@github.com님이 작성:

@summerbell https://github.com/summerbell 가이드 확인 해주시고, 진행중 이시면 현재 상태 알려주시면 감사하겠습니다.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/naver/kaist-oss-course/issues/61#issuecomment-222055182, or mute the thread https://github.com/notifications/unsubscribe/AQ2gxEdSuNFAilHpus2PItnUrCf1t4uCks5qFmz1gaJpZM4HlXmM .

summerbell commented 8 years ago

안녕하세요 현재 진행 상황으로 arcus-hubble을 실습 프로젝트 진행 때 사용했던 docker 상에 설치 중입니다. env.sh 상의 HUBBLE_ZOOKEEPER_HOST를 아커스 실행시 conf/*.json 파일에 설정했던 ip주소대로 바꾸고, ./setup.sh 를 실행했는데

이런 결과가 떠서 arcus-hubble에 대해 조금 더 설맹해주십사 메일 드립니다ㅠㅠ

    1. 27., 오후 1:03, MinWooJin notifications@github.com 작성:

@summerbell https://github.com/summerbell 가이드 확인 해주시고, 진행중 이시면 현재 상태 알려주시면 감사하겠습니다.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/naver/kaist-oss-course/issues/61#issuecomment-222055182, or mute the thread https://github.com/notifications/unsubscribe/AQ2gxEdSuNFAilHpus2PItnUrCf1t4uCks5qFmz1gaJpZM4HlXmM.

jhpark816 commented 8 years ago

@summerbell 위 코멘트에서 "이런 결과"란 부분을 구체적으로 말해 주세요..

summerbell commented 8 years ago

셋업이 안 된 것 같은데 로그를 통해서 문제를 파악을 못했습니다 첨부한 그림 처럼 -i used with no filenames on the command line, reading from STDIN 과 setup.sh에서 npm command not found라고 뜨는데 어떻게 해결해야하는지에 대해 여쭈고자 했습니다

    1. 5., 오후 11:11, Park JunHyun notifications@github.com 작성:

@summerbell https://github.com/summerbell 위 코멘트에서 "이런 결과"란 부분을 구체적으로 말해 주세요..

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/naver/kaist-oss-course/issues/61#issuecomment-223815175, or mute the thread https://github.com/notifications/unsubscribe/AQ2gxNLqkztWZsfyQaBn5Qh6aSymK0Dsks5qItj9gaJpZM4HlXmM.

MinWooJin commented 8 years ago

@summerbell 메일 오신걸 답장으로 보내신것 같습니다. github issue에 첨부하셨던 그림 올려주세요. 실습을 진행했던 docker가 어떻게 설정되있는지도 같이 알려주세요. 여기에서는 실습 환경을 모르는 상황입니다.

자세하게 진행하신 내용, 오류가 발생하는 부분을 알려주시면 문제를 조금 더 정확하게 파악할 수 있을것같습니다.

summerbell commented 8 years ago

아하 코멘트에 그림 첨부가 안되었군요ㅠ

2016-06-05 9 46 08

[

2016-06-05 9 46 08

](url)

입니다

docker는 https://github.com/summerbell/OSS-Project의 docker-arcus폴더에 있는 dockerfile로 설정하였고, https://github.com/ruo91/docker-arcus 링크 참고해서 arcus 사용 실습을 했습니다

minkikim89 commented 8 years ago

@summerbell arcus_hubble이 설치되어있는 곳과 env.sh에서 설정되어있는 arcus_hubble의 위치가 다른 것 같습니다. env.sh에서 각 환경변수의 위치를 체크해주세요.

summerbell commented 8 years ago

아커스 허블의 위치 환경 변수를 수정하였으나 같은 에러가 발생하여 환경 변수 설정법에 대해 다시 여쭙니다

Path to your collectd installation.

export COLLECTD_HOME=/opt/arcus-hubble/collectd

Path to your hubble installation.

export HUBBLE_HOME=/opt/arcus-hubble

Path to store RRD files.

export COLLECTD_RRD_DATADIR=/opt/hubble_data

Identify current IP automatically. Change it if you want to specify IP.

export COLLECTD_LISTENER_IP=/sbin/ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -n 1

Collectd listener port for interval 5 sec.

export COLLECTD_LISTENER_5S_PORT="25828"

Collectd listener port for interval 1 min. (for Arcus prefix statistics)

export COLLECTD_LISTENER_1M_PORT="25829"

ZooKeeper hosts

export HUBBLE_ZOOKEEPER_HOSTS="172.17.0.3:2181"

Hubble Orbiter Port

- Orbiter watches Arcus directories in ZooKeeper.

- And serves informations for every cache cluster in the ZooKeeper.

export HUBBLE_ORBITER_PORT=3000

Hubble RRD Server Port

- RRD Server serves chart data in RRD files.

export HUBBLE_RRD_SERVER_PORT=25832

Hubble Web Port

- Serves interactive chart dashboard.

export HUBBLE_WEB_PORT=8080

로 설정하는데 바꾸어줘야하는 점이 있나요

jhpark816 commented 8 years ago

@summerbell

위의 env.sh 파일의 내용을 아래와 같이 올려 주세요.. 코드 내용 등을 올릴 때, 사용하는 wiki syntax 입니다..

env.sh 내용 copy & paste

그리고, /opt/arcus-hubble/collectd 디렉토리에 있는 내용도 위와 같은 형식으로 올려주세요..

summerbell commented 8 years ago
#!/bin/bash

# Path to your collectd installation.
export COLLECTD_HOME=/opt/arcus-hubble/collectd

# Path to your hubble installation.
export HUBBLE_HOME=/opt/arcus-hubble

# Path to store RRD files.
export COLLECTD_RRD_DATADIR=$HOME/hubble_data

# Identify current IP automatically. Change it if you want to specify IP.
export COLLECTD_LISTENER_IP=`/sbin/ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){
3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | head -n 1`

# Collectd listener port for interval 5 sec.
export COLLECTD_LISTENER_5S_PORT="25828"

# Collectd listener port for interval 1 min. (for Arcus prefix statistics)
export COLLECTD_LISTENER_1M_PORT="25829"

# ZooKeeper hosts
export HUBBLE_ZOOKEEPER_HOSTS="10.0.0.1:2181,10.0.0.2:2181,10.0.0.3:2181"

root@arcus:/opt/arcus-hubble/collectd# ls -al total 52 drwxr-xr-x 2 root root 4096 Jun 9 11:54 . drwxr-xr-x 8 root root 4096 Jun 9 11:54 .. -rw-r--r-- 1 root root 9280 Jun 9 11:54 arcus_stat.py -rw-r--r-- 1 root root 566 Jun 9 11:54 collectd-arcus-prefix.conf.template -rw-r--r-- 1 root root 1733 Jun 9 11:54 collectd-arcus.conf.template -rw-r--r-- 1 root root 476 Jun 9 11:54 collectd-listener-1m.conf.template -rw-r--r-- 1 root root 1654 Jun 9 11:54 collectd-listener-5s.conf.template -rw-r--r-- 1 root root 13077 Jun 9 11:54 types.db

입니다 제가 rrdtool 과 collectd를 도큐먼트에 있는 방식이 통하지 않아 패키지 설치 명령어로 설치하여

root@arcus:/opt/arcus-hubble# which rrdtool /usr/bin/rrdtool root@arcus:/opt/arcus-hubble# which collectd /usr/sbin/collectd

에 설치되어 실행할수 있는 것 같은데 홈 디렉토리 설정을 어떻게 해야할 지 모르겠습니다

jhpark816 commented 8 years ago

env.sh에서 COLLECTD_HOME 환경 변수에는 README 파일에 기재된 바와 같이 rrdtool과 collectd가 설치된 path가 지정되어야 합니다. 다시 시도해 보고 오류가 나면 올려주면 좋겠습니다..

jhpark816 commented 8 years ago

그리고, 위의 setup.sh 수행 결과를 보면, 여러 곳에서 오류가 납니다..

setup.sh 파일을 열어 어떤 부분에서 오류가 난 것이지 확인하고, 조치도 취해야 합니다..

첫번째, setup.sh 파일을 열어 보면, 아래의 내용이 있는 데요.. 여러 config template 파일들에서 환경변수의 실제 값으로 설정하여 config 파일을 생성하는 부분이 있는 데, 이 부분이 오류가 나고 있습니다.

TEMPLATE_REGEX='s/\$\{([^}]+)\}/defined $ENV{$1} ? $ENV{$1} : $&/eg'
function TEMPLATE
{
  TEMPLATE_TARGET=$1
  # Replace ${ENVIRONMENT_VARIABLE} to actual values.
  perl -p -e "$TEMPLATE_REGEX" "$TEMPLATE_TARGET.template" > "$TEMPLATE_TARGET"
}

CONFIG_FILES=(
  collectd/collectd-arcus.conf
  collectd/collectd-arcus-prefix.conf
  collectd/collectd-listener-5s.conf
  collectd/collectd-listener-1m.conf
  conf/conf-orbiter.json
  conf/conf-rrd.json
  conf/conf-view.json
  lib/node_rrd/binding.gyp
  view/modules/config.js
)

# Modify configurations
for file in ${CONFIG_FILES[@]}; do
  echo $file
  TEMPLATE $file
done

둘쨰, npm이 설치되지 않아서 오류가 나고 있고,

쎗째, 위의 코멘트에서 언급한 rrdtool과 collectd가 설치된 directory가 지정되지 않아서, 오류가 납니다.

summerbell commented 8 years ago

아... 제가 잘못따라하고 있었던 것 같습니다 다시 확인하겠습니다

summerbell commented 8 years ago

ducky-hong씨 docker를 이용해서 arcus-hubble실행 시켰습니다 페이지 구현 진행하겠습니다