Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
fluent-plugin-norikra
Fluentd Casual Talks #3
2013/12/13(Fri)
@tagomoris

13年12月13日金曜日
TAGOMORI Satoshi (@tagomoris)
LINE Corp.
Hadoop, Fluentd, Norikra, ...

13年12月13日金曜日
13年12月13日金曜日
Norikra:
Schema-less Stream
Processing with SQL
13年12月13日金曜日
Norikra(1):
Schema-less event stream:
Add/Remove data fields whenever you want

SQL:
No more restarts to add/remove queries...
Norikra(2):
Open source software:
Licensed under GPLv2
Based on Esper
UDF plugins from rubygems.org

Ultra-fast bootstrap ...
Norikra Queries: (1)

SELECT name, age
FROM events

13年12月13日金曜日
Norikra Queries: (1)
{“name”:”tagomoris”,
“age”:34, “address”:”Tokyo”,
“corp”:”LINE”, “current”:”Shibuya”}

SELECT name, a...
Norikra Queries: (1)
{“name”:”tagomoris”,
“address”:”Tokyo”,
“corp”:”LINE”, “current”:”Shibuya”}

SELECT name, age
FROM ev...
Norikra Queries: (2)
{“name”:”tagomoris”,
“age”:34, “address”:”Tokyo”,
“corp”:”LINE”, “current”:”Shibuya”}

SELECT name, a...
Norikra Queries: (2)
{“name”:”kiyoto”,
“age”:99, “address”:”CA”,
“corp”:”TD”, “current”:”MV”}

SELECT name, age
FROM event...
Norikra Queries: (3)

SELECT age, COUNT(*) as cnt
FROM events.win:time_batch(5 mins)
GROUP BY age

13年12月13日金曜日
Norikra Queries: (3)
{“name”:”tagomoris”,
“age”:34, “address”:”Tokyo”,
“corp”:”LINE”, “current”:”Shibuya”}

SELECT age, CO...
Norikra Queries: (4)
{“name”:”tagomoris”,
“age”:34, “address”:”Tokyo”,
“corp”:”LINE”, “current”:”Shibuya”}

SELECT age, CO...
Norikra Queries: (5)
{“name”:”tagomoris”,
“user:{“age”:34, “corp”:”LINE”,
“address”:”Tokyo”},
“current”:”Shibuya”,
“speake...
Norikra Queries: (5)
{“name”:”tagomoris”,
“user:{“age”:34, “corp”:”LINE”,
“address”:”Tokyo”},
“current”:”Shibuya”,
“speake...
Norikra Queries: (5)
{“name”:”tagomoris”,
“user:{“age”:34, “corp”:”LINE”,
“address”:”Tokyo”},
“current”:”Shibuya”,
“speake...
Before: Fluentd

EACH SERVICES

<match for.target.service.application.logs>
type numeric_monitor
unit minute
tag service.r...
After: Norikra

EACH SERVICES!

SELECT
percentiles(api_response_time, [50,90,95,98,99]) AS p
FROM target_service.win:time_...
Before: Fluentd
<match for.target.service.access.logs.**>
type forest
subtype datacounter
remove_prefix httpstatus.count
u...
After: Norikra
SELECT
service,
count(IF(status / 200 = 2, 1, NULL)) AS success
FROM all_logs.win:time_batch(1 min)
GROUP B...
fluent-plugin-norikra

13年12月13日金曜日
fluent-plugin-norikra
in_norikra
out_norikra
out_norikra_filter

13年12月13日金曜日
out_norikra

Fluentd

13年12月13日金曜日

out_norikra

Norikra
in_norikra

Norikra

13年12月13日金曜日

in_norikra

Fluentd
out_norikra_filter
Fluentd
out_norikra_filter

Norikra

13年12月13日金曜日
in/out_norikra and out_norikra_filter
out_norikra_filter
For Casual Use Cases / Fluentd Centric
Automated features
Server au...
Please Try and
Enjoy Norikra!

13年12月13日金曜日
Nächste SlideShare
Wird geladen in …5
×

fluent-plugin-norikra #fluentdcasual

59.971 Aufrufe

Veröffentlicht am

Talks about fluent-plugin-norikra
in Fluentd Casual Talks #3

Veröffentlicht in: Technologie, Business

fluent-plugin-norikra #fluentdcasual

  1. 1. fluent-plugin-norikra Fluentd Casual Talks #3 2013/12/13(Fri) @tagomoris 13年12月13日金曜日
  2. 2. TAGOMORI Satoshi (@tagomoris) LINE Corp. Hadoop, Fluentd, Norikra, ... 13年12月13日金曜日
  3. 3. 13年12月13日金曜日
  4. 4. Norikra: Schema-less Stream Processing with SQL 13年12月13日金曜日
  5. 5. Norikra(1): Schema-less event stream: Add/Remove data fields whenever you want SQL: No more restarts to add/remove queries w/ JOINs, w/ SubQueries w/ UDF Truly Complex events: Nested Hash/Array, accessible directly from SQL 13年12月13日金曜日
  6. 6. Norikra(2): Open source software: Licensed under GPLv2 Based on Esper UDF plugins from rubygems.org Ultra-fast bootstrap & small start: 3mins to install/start 1 server 13年12月13日金曜日
  7. 7. Norikra Queries: (1) SELECT name, age FROM events 13年12月13日金曜日
  8. 8. Norikra Queries: (1) {“name”:”tagomoris”, “age”:34, “address”:”Tokyo”, “corp”:”LINE”, “current”:”Shibuya”} SELECT name, age FROM events {“name”:”tagomoris”,”age”:34} 13年12月13日金曜日
  9. 9. Norikra Queries: (1) {“name”:”tagomoris”, “address”:”Tokyo”, “corp”:”LINE”, “current”:”Shibuya”} SELECT name, age FROM events nothing 13年12月13日金曜日
  10. 10. Norikra Queries: (2) {“name”:”tagomoris”, “age”:34, “address”:”Tokyo”, “corp”:”LINE”, “current”:”Shibuya”} SELECT name, age FROM events WHERE current=”Shibuya” {“name”:”tagomoris”,”age”:34} 13年12月13日金曜日
  11. 11. Norikra Queries: (2) {“name”:”kiyoto”, “age”:99, “address”:”CA”, “corp”:”TD”, “current”:”MV”} SELECT name, age FROM events WHERE current=”Shibuya” nothing 13年12月13日金曜日
  12. 12. Norikra Queries: (3) SELECT age, COUNT(*) as cnt FROM events.win:time_batch(5 mins) GROUP BY age 13年12月13日金曜日
  13. 13. Norikra Queries: (3) {“name”:”tagomoris”, “age”:34, “address”:”Tokyo”, “corp”:”LINE”, “current”:”Shibuya”} SELECT age, COUNT(*) as cnt FROM events.win:time_batch(5 mins) GROUP BY age every 5 mins {”age”:34,”cnt”:3}, {“age”:33,”cnt”:1}, ... 13年12月13日金曜日
  14. 14. Norikra Queries: (4) {“name”:”tagomoris”, “age”:34, “address”:”Tokyo”, “corp”:”LINE”, “current”:”Shibuya”} SELECT age, COUNT(*) as cnt FROM events.win:time_batch(5 mins) GROUP BY age SELECT max(age) as max FROM events.win:time_batch(5 mins) every 5 mins {”age”:34,”cnt”:3}, {“age”:33,”cnt”:1}, ... {“max”:51} 13年12月13日金曜日
  15. 15. Norikra Queries: (5) {“name”:”tagomoris”, “user:{“age”:34, “corp”:”LINE”, “address”:”Tokyo”}, “current”:”Shibuya”, “speaker”:true, “attend”:[true,true,false, ...] } SELECT age, COUNT(*) as cnt FROM events.win:time_batch(5 mins) GROUP BY age 13年12月13日金曜日
  16. 16. Norikra Queries: (5) {“name”:”tagomoris”, “user:{“age”:34, “corp”:”LINE”, “address”:”Tokyo”}, “current”:”Shibuya”, “speaker”:true, “attend”:[true,true,false, ...] } SELECT user.age, COUNT(*) as cnt FROM events.win:time_batch(5 mins) GROUP BY user.age 13年12月13日金曜日
  17. 17. Norikra Queries: (5) {“name”:”tagomoris”, “user:{“age”:34, “corp”:”LINE”, “address”:”Tokyo”}, “current”:”Shibuya”, “speaker”:true, “attend”:[true,true,false, ...] } SELECT user.age, COUNT(*) as cnt FROM events.win:time_batch(5 mins) WHERE current=”Kyoto” AND attend.$0 AND attend.$1 GROUP BY user.age 13年12月13日金曜日
  18. 18. Before: Fluentd EACH SERVICES <match for.target.service.application.logs> type numeric_monitor unit minute tag service.response output_key_prefix request_api aggregate all monitor_key api_response_time percentiles 50,90,95,98,99 </match> ... AND RESTART OF FLUENTD!!!!!!!!!!!!!! 13年12月13日金曜日
  19. 19. After: Norikra EACH SERVICES! SELECT percentiles(api_response_time, [50,90,95,98,99]) AS p FROM target_service.win:time_batch(1 min) WITHOUT ANY RESTARTS! 13年12月13日金曜日
  20. 20. Before: Fluentd <match for.target.service.access.logs.**> type forest subtype datacounter remove_prefix httpstatus.count unit minute output_per_tag yes aggregate tag output_messages yes count_key status pattern1 success ^2dd tag_prefix datacount.httpstatus </match> ... AND RESTART OF FLUENTD!!!!!!!!!!!!!! 13年12月13日金曜日
  21. 21. After: Norikra SELECT service, count(IF(status / 200 = 2, 1, NULL)) AS success FROM all_logs.win:time_batch(1 min) GROUP BY service WITHOUT ANY RESTARTS! 13年12月13日金曜日
  22. 22. fluent-plugin-norikra 13年12月13日金曜日
  23. 23. fluent-plugin-norikra in_norikra out_norikra out_norikra_filter 13年12月13日金曜日
  24. 24. out_norikra Fluentd 13年12月13日金曜日 out_norikra Norikra
  25. 25. in_norikra Norikra 13年12月13日金曜日 in_norikra Fluentd
  26. 26. out_norikra_filter Fluentd out_norikra_filter Norikra 13年12月13日金曜日
  27. 27. in/out_norikra and out_norikra_filter out_norikra_filter For Casual Use Cases / Fluentd Centric Automated features Server autostart Query registration/fetches in/out_norikra For Norikra Users [NOT IMPLEMENTED: Distributed Norikra Support ] 13年12月13日金曜日
  28. 28. Please Try and Enjoy Norikra! 13年12月13日金曜日

×