스플렁크의 모아진 데이터의 내용을 좀 더 알기 쉽게 해석할 수 있도록 도와주며 KVStore를 이용해 현재의 상태를 업데이트 하는데도 사용할 수 있다.
kospi_200.csv 파일을 이용하여 룩업 만듦. 윈도우 다운로드 폴더에 있는 걸 업로드함.
| inputlookup kospi_200.csv
룩업파일에 대한 조회 명령어
수집된 파일엔 코드만 존재하고 회사명이 없음, 따라서 편의를 위해 회사명을 연결해주는 룩업을 사용
index="kospi" Date="2020-12-30" | lookup name table code, Date, Close, Open, High, Low
해도 안됨 포기하고 넘어가서
이걸로 하면 됨 ↓
index=kospi Date="2020-12-30"
| table code, Date, Close, Open, High, Low
| rex field=code "^(?<code>\d+).KS"
| lookup kospi_200 code OUTPUT name
출력 테이블을 생성하고 각 필드의 값을 출력
정규식을 활용하여 code 필드의 값 중 .KS를 제거한 값만 정장
kospi_200 룩업 정의에 따라 숫자만 남은 코드값을 읽어 name 출력
_key : 해당 컬름을 구분하는 구분자로 히든컬럼 처리
vi /opt/splunk/etc/apps/stock/local/collections.conf
위의 디렉토리에 존재하는 collections.conf 파일 편집,
나의 디렉토리엔 해당 파일이 없어서 새로 만들게 됨
vi /opt/splunk/etc/apps/stock/local/transforms.conf
| makeresults 1 | eval code = "005930", share = 5, interest = 1
| eval _key = code
| outputlookup my_stock append=true override_if_empty=true
| inputlookup my_stock | eval key = _key | table key, *
위의 명령어를 통해 가상의 데이터가 my_stock(kv store)에 저장된 데이터를 불러와 볼 수 있음
| inputlookup my_stock
| map search="| readstock code=$code$ | spath
| eval share = $share$
| table code, price, share "
| eval asset = share * price
| lookup kospi_200 code OUTPUT name
| chart sum(asset) by name
| inputlookup my_stock
| map search="| readstock code=$$code$$ | spath
| eval share = $$share$$
| table code, price, share "
| eval asset = price
| lookup kospi_200 code OUTPUT name
| chart sum(asset) by name
<dashboard script="reset_tokens.js" version="1.1">
<label>나의 자산</label>
<!--- 추가되는 부분-->
<search id="current_stock">
<query>
| inputlookup my_stock
| map search="| readstock code=$$code$$
| spath
| eval share = $$share$$
| table code, price, share "
</query>
</search>
<!--- 여기까지-->
<row>
<panel>
<title>나의 자산 현황</title>
<single>
<search base="current_stock">
<query> eval asset = share * price
| lookup kospi_200 code OUTPUT name
| chart sum(asset) by name</query>
</search>
<option name="colorBy">value</option>
<option name="colorMode">block</option>
<option name="drilldown">all</option>
<option name="numberPrecision">0</option>
<option name="rangeColors">["0x118832","0x1182f3","0xcba700","0xd94e17","0x118832"]</option>
<option name="rangeValues">[0,30,70,100]</option>
<option name="showSparkline">1</option>
<option name="showTrendIndicator">1</option>
<option name="trellis.enabled">1</option>
<option name="trellis.scales.shared">1</option>
<option name="trellis.size">medium</option>
<option name="trellis.splitBy">name</option>
<option name="trendColorInterpretation">standard</option>
<option name="trendDisplayMode">absolute</option>
<option name="unitPosition">after</option>
<option name="useColors">1</option>
<option name="useThousandSeparators">1</option>
<drilldown>
<set token="stock_code">$trellis.value$</set>
</drilldown>
</single>
</panel>
<panel>
<title>현재 주식 가격</title>
<single>
<search base="current_stock">
<query> lookup kospi_200 code OUTPUT name
| chart sum(price) by name</query>
</search>
<option name="colorBy">value</option>
<option name="colorMode">block</option>
<option name="drilldown">all</option>
<option name="numberPrecision">0</option>
<option name="rangeColors">["0x53a051","0x0877a6","0xf8be34","0xf1813f","0xdc4e41"]</option>
<option name="rangeValues">[0,30,70,100]</option>
<option name="refresh.display">progressbar</option>
<option name="showSparkline">1</option>
<option name="showTrendIndicator">1</option>
<option name="trellis.enabled">1</option>
<option name="trellis.scales.shared">1</option>
<option name="trellis.size">medium</option>
<option name="trendColorInterpretation">standard</option>
<option name="trendDisplayMode">absolute</option>
<option name="unitPosition">after</option>
<option name="useColors">1</option>
<option name="useThousandSeparators">1</option>
<drilldown>
<set token="stock_code">$trellis.value$</set>
</drilldown>
</single>
</panel>
</row>
</dashboard>
중복 코드 정리