28
Copyright © 2015 Splunk Inc. Splunk MINT 스플렁크 모바일인텔리전스 Splunk Korea 2015.03

Splunk mint 소개

Embed Size (px)

Citation preview

Copyright © 2015 Splunk Inc.

Splunk MINT스플렁크모바일인텔리전스

Splunk Korea2015.03

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 소개

모바일 데이터를 활용한 운영 인텔리전스 향상

7

보다안정적이고빠른앱제공

실시간분석환경제공

End-to-End가시성확보

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에대한병목지점발견• 트랜잭션볼륨에대한적절한용량산정• 모든채널에대한성능확인

• 사용자행동및사용자경험에대한인사이트• 보다가치있는앱기능향상을빠르게달성• 다채널분석

앱 관리자/오퍼레이터

제품매너저/비지니스오너

모바일앱개발자

about Mint SDK

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

Copyright © 2015 Splunk Inc.

감사합니다.