splunk mint 소개
TRANSCRIPT
2
Turning Machine Data Into Business Value
Index Untapped Data: Any Source, Type, Volume
Online Services Web
Services
ServersSecurity GPS
Location
StorageDesktops
Networks
Packaged Applications
CustomApplicationsMessaging
TelecomsOnline
Shopping Cart
Web Clickstreams
Databases
Energy Meters
Call Detail Records
Smartphones and Devices
RFID
On-Premises
Private Cloud
Public Cloud
Ask Any Question
Application Delivery
Security, Compliance and Fraud
IT Operations
Business Analytics
Industrial Data andthe Internet of Things
MINT
MainframeData
VMware
Platform for Machine Data
Splunk 기술 포트폴리오
Exchange PCISecurity
RelationalDatabases
MobileForwardersSyslog / TCP / Other
Sensors & Control Systems
풍부한 앱 생태계
Across Data Sources, Use Cases & Consumption Models
Wire Data
3
Mobile Intel
프리미엄 솔루션
• 새 OS 버전과앱의호환성문제
• 네트워크연관문제를시뮬레이션/해결의어려움
• 제한된시간내에문제점 fix 및앱에변경반영
모바일 앱 개발/운영시 어려움
4
• 서버용량/확장계획
• 인프라, API, 앱의문제점해결
• 기능별사용통계
• 사용자행동모니터링및분석
• 옴니채널분석
• 모바일+웹+데스크탑
폼 펙터, 플랫폼,인터페이스 다양성
개발 사이클 및문제점 해결 시간 단축
인프라스트럭쳐관련 문제들
분석
• OS및단말의종류에대한다양성
• 디바이스와버전에대한연관분석
모바일 앱 운영 환경에서의 역할별 어려움
5
• 앱 crash나성능문제의원인을어떻게찾을것인가?
• 문제발생시점에사용자는무엇을하고있었나?
• 트랜잭션수행과정에대한인사이트를어떻게얻을것인가?
• 이문제의원인이앱인가? 네트워크인가? 아니면백엔드서버인가?
• 지금의서버용량은발생하는트랜잭션을커버하기에충분한가?
• 모바일, 웹, 데스크탑어플리케이션의성능비교?
• 고객들은우리앱을어떻게사용하고있는가?
• 신기능에대한우선순위를어떻게잡아야하는가?
• 채널별로고객의행동이어떻게다른가?
앱 관리자/오퍼레이터
제품매너저/비지니스오너
모바일앱개발자
Splunk MINT 서비스 구조
8
Deviceswith MINT SDK
Splunk MINTManagement console
Splunk MINT Data Collector
Splunk MINT App
in the cloud in your organization
• Android SDK 1.6 (API Level 4) and later• iOS 7.0 and later
• ARMv7, ARMv7s, and ARM64• The iOS Simulator
Splunk MINT 시작하기
9
Mobile Developers
Sign up on mint.splunk.com
Download SDKsand create mobile projects
Download SplunkEnterprise
Splunk Admin
Re-deploy Splunk MINTenabled apps
Check Splunk MINTManagement console
Download the SplunkMINT App
Run Wizard to connectto the Splunk MINT
Data Collector
Get dashboards andsearch, correlate
Splunk MINT는 어떻게 동작하는가?
• 모바일앱에 MINT SDK 임베딩
• 한줄의코드추가로 SDK 활성화
• 앱의운영데이터가 Splunk MINT Data Collector로안전하게전송
• Splunk MINT App을이용한모바일운영데이터분석
• Splunk Enterprise를이용하여다른데이터와연관분석
10
모바일앱운영데이터
Splunk MINT Data Collector
실시간모바일운영분석
보다 안정적이고 빠른 앱 제공
• 성능문제와앱장애를빠르게인지하여사용자이탈방지
• 문제점이앱에있는지네트워크에있는지명확한확인
• 앱문제점및네트워크성능문제해결을위한앱, OS, 디바이스타입데이터연관분석
11
앱의 Crash나성능정보에대한실시간모니터링제공
보다 안정적이고 빠른 앱 제공
• 중요한비지니스트랜잭션의모니터링및분석
• 특정이벤트나트랜잭션을모니터링하여사용자행동을이해
• 모든 HTTP call에대한지연시간및볼륨, 상태코드측정
12
트랜잭션과이벤트모니터링
보다 안정적이고 빠른 앱 제공
• 네트워크성능트렌드시각화
• 네트워크문제로트랜잭션이실패하고있는지확인
• 네트워크 latency를측정하고, 모바일앱성능에미치는영향도이해
13
네트워크가모바일앱에미치는영향도분석
End-to-End 가시성 확보
• End-to-end 트랜잭션분석을위해Splunk MINT 데이터를다른운영인텔리전스데이터와연관분석
• 모바일데이터와기타데이터를연관분석하고드릴다운하기위해 Splunk Enterprise의검색기능활용
14
연관분석을통한다양한인사이트확보
실시간 분석 제공
• 네트워크 성능: 사업자별네트워크성능분석을위한대시보드생성 (Wi-Fi, LTE networks, etc.)
• Geolocation: 사용자위치에따른앱사용및성능에대한인사이트확보
• 사용자 세션: 사용자의모바일앱사용패턴에대한이해
15
앱과사용자에대한세밀한인사이트확보
실시간 분석 제공
• 모바일인텔리전스정보를시각화하기위해 Splunk의 Search, Dash board, Data model 및 Pivot 이용
• 비지니스컨텍스트와타어플리케이션데이터를연결하여다채널분석수행
16
앱 Crash와성능에대한실시간모니터링
MINT가 개발자와 비지니스 오너를 위해 제공하는 가치
17
• 앱품질에대한즉각적인인사이트• 사용자, 사용량, 트랜잭션, 네트워크에대한가시성• 가벼운 SDK를활용한빠른 time-to-value
• 앱, 네트워크, 백엔드, API에대한병목지점발견• 트랜잭션볼륨에대한적절한용량산정• 모든채널에대한성능확인
• 사용자행동및사용자경험에대한인사이트• 보다가치있는앱기능향상을빠르게달성• 다채널분석
앱 관리자/오퍼레이터
제품매너저/비지니스오너
모바일앱개발자
Getting Started With Splunk MINT
19
Mobile Developers
Sign up on mint.splunk.com
Download SDKsand create mobile projects
Download SplunkEnterprise
Splunk Admin
Re-deploy Splunk MINTenabled apps
Check Splunk MINTManagement console
Download the SplunkMINT App
Run Wizard to connectto the Splunk MINT
Data Collector
Get dashboards andsearch, correlate
initialize
20
import com.splunk.mint.Mint;
public MyActivity extends Activity {public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// installs exception handler, performance monitorMint.initAndStartSession(MyActivity.this, "YOUR_API_KEY");
setContentView(R.layout.main);
// Continue with your code}...
<uses-permission android:name="android.permission.INTERNET" />
AndroidManifest.xml
code example
event logging
21
Mint.logEvent("Button1 pressed");또는Mint.logEvent("Button1 pressed", MintLogLevel.Info);
HashMap<String, Object> mydata = new HashMap<String, Object>();mydata.put("hotel", "Bob's B&B");mydata.put("member", "Elite");Mint.logEvent("Button1 pressed", MintLogLevel.Info, mydata);
log event 에 custom data 넣기
event logging
index=mint event_name=* extraData.hotel=* | table event_name, extraData.hotel
Search
transaction
22
Mint.transactionStart("Test1");...Mint.transactionStop("Test1");…Mint.transactionCancel("Test1", "This is the reason");
HashMap<String, Object> mydata = new HashMap<String, Object>();mydata.put("hotel", "Bob's B&B");mydata.put("member", "Elite");Mint.transactionStop("Checkin", mydata);
Transaction에 custom data 넣기
Transaction의 start/stop/cancel
sourcetype=mint:trstart extraData.member=* | table tr_name, extraData.member
Search
exception handling
23
try {String a = null;a.toString();
} catch(Exception ex) {// See the stacktrace in your LogCat outputex.printStackTrace();Mint.logException(ex);
}
HashMap<String, Object> map = new HashMap<String, Object>();map.put("level", "second level");map.put("difficulty", "impossibruuu");Mint.logExceptionMap(map, ex);
Exception에 key-value 형태로 custom data 넣기
Exception reporting
extra data to crash report
24
public MyActivity extends Activity {public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);// TODO: Update with your API keyMint.initAndStartSession(MyActivity.this, "YOUR_API_KEY");Mint.addExtraData("loginfrom", "Facebook");Mint.addExtraData("gender", "male");// 또는HashMap<String, Object> extras = new HashMap<String, Object>();extras.put("loginfrom", "Twitter");extras.put("gender", "female");Mint.addExtraDataMap(extras);
}// Called when the user presses the Logout buttonpublic void userLogout() {
Mint.removeExtraData("loginfrom");Mint.removeExtraData("gender");// OR:Mint.clearExtraData();
}}
code example
user specific data
25
public MyActivity extends Activity {private void onSuccessfullLogin() {
String userIdentifier = getUserID();Mint.setUserIdentifier(userIdentifier);
}}
code example
sending LogCat output with crash report
26
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
// TODO: Update with your API keyMint.initAndStartSession(MyActivity.this, "YOUR_API_KEY");
// Enable loggingMint.enableLogging(true);
// Log last 100 messagesMint.setLogging(100);
setContentView(R.layout.main);
// Continue with your code}
<uses-permission android:name="android.permission.READ_LOGS" />
AndroidManifest.xml
code example
For more information
http://mint.splunk.com
http://docs.splunk.com/Documentation/Mint
[email protected] / 010.7700.6933
27