SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Fluentd v11
Jan 23, 2014
Masahiro Nakagawa
Treasure Data, Inc

www.treasuredata.com/
Sunday, January 26, 14

1
Who are you?
•

Masahiro Nakagawa

•
•

Treasure Data, Inc.

•
•
•

@repeatedly

Senior Software Engineer
Fluentd, td-agent, etc...

Dlang, MessagePack, ...

2
Sunday, January 26, 14
Structured logging
http://fluentd.org/

Reliable forwarding
Pluggable architecture

Sunday, January 26, 14
MxN→M+N
Access logs

Alerting

Apache

Nagios

App logs

Analysis

Frontend

MongoDB

Backend

MySQL
Hadoop

System logs
syslogd
buffer / buffer / routing

Databases

Archiving
Amazon S3
4

Sunday, January 26, 14
v10
• Mainly for log forwarding
• with good performance
• working in many productions reliably
• Various plugins are released
• There are 200+ plugins!
• Mainly for CRuby
5
Sunday, January 26, 14
Why v11?
• We want more useful features, but...
• Changing the internal architecture is hard
• Keeping the external API is even harder
• Originally, v10 was started as a prototype
• Need drastic changes for the future :)
6
Sunday, January 26, 14
What’s new?
• ServerEngine based reliable architecture
• Zero-downtime restarting
• Filter / Label for flexible record handling
• Improved configuration
• Improved plugin development
7
Sunday, January 26, 14
ServerEngine based
• Robust signal handling
• Put a signal into Queue first
• Built-in supervisor
• Multiprocess support
• No need for in_multiprocess plugin
8
Sunday, January 26, 14
Multi Process
Supervisor

Worker

Worker

Worker

<worker>
input tail
output mongo
</worker>

<worker>
input forward
output webhdfs
</worker>

<worker>
input foo
output bar
</worker>

Separate stream pipelines in one instance!
9
Sunday, January 26, 14
Zero downtime restart
• SocketManager shares resources with
workers

Supervisor

1. Listen to TCP socket

TCP

10
Sunday, January 26, 14
Zero downtime restart
• SocketManager shares resources with
workers

Supervisor
TCP

1. Listen to TCP socket
2. Pass its socket to worker

heartbeat

Worker
TCP

11
Sunday, January 26, 14
Zero downtime restart
• SocketManager shares resources with
workers

Supervisor
TCP
heartbeat

Worker

1. Listen to TCP socket
2. Pass its socket to worker
3. Do same action
at worker restarting
with keeping TCP socket

Worker
TCP

12
Sunday, January 26, 14
Filter / Label support
• No more tag-related tricks!
• add_tag_xxx, remove_tag_xxx, etc...
• Redirect events to another group
• Much easier to group and share plugins
13
Sunday, January 26, 14
Filter
• <match> can have nested <match>
• Configuration format is not fixed!
v10:
<match access.**>
type flowcounter
add_tag_prex counted
</match>
<match counted.**>
typo growthforecast
</match>

v11:
<match access.** copy>
type flowcounter
<match **>
typo growthforecast
</match>
</match>
14

Sunday, January 26, 14
Label
• <label> can contain multiple <match>
• out_redirect can forward events to <label>
<match access.**>
type rewrite_tag_lter
...
<match bang.**>
type redirect
to_label blackhole
</match>
...
</match>

<label blackhole>
<match **>
type null
</match>
</label>

bang’s record go away!
15

Sunday, January 26, 14
Improved conguration
• Can use Hash, Array and others
• No need for “,” or similar tricks
• You can write Ruby directly
• Worker pragma
• Separate plugins in each process
• Support the v10 compatible mode
16
Sunday, January 26, 14
New parameter types
• Can write complex values without DSL!
• Can use Ruby code for configuration
Hash, Array, etc:

Embedded Ruby code:

<source>
type my_tail
keys ["k1", "k2", "k3"]
</source>
<match **>
typo my_lter
add_keys {"k1" : "v1"}
</match>
Sunday, January 26, 14

<match ** copy>
type my_lter
env "#{ENV['KEY']}"
</match>

•
•
•

Socket.gethostname
`command`
etc...
17
Improved plugin
• Actor
• Abstraction layer for several actions
• Error stream
• with @ERROR label
• Log level per plugin
• No more global API, Engine.emit, $log, etc...
18
Sunday, January 26, 14
Actor
• Easy to write popular routines
v10:

v11:

class TimerWatcher <
Coolio::TimerWatcher
...
end
def start
@loop = Coolio::Loop.new
@timer = ...
@loop.attach(@timer)
@thread = ...
end
Sunday, January 26, 14

actor.every(@interval) {
event_router.emit(...)
}

19
Error stream
• Can handle an error at each record level
Input
{"event":1, ...}

chunk1

{"event":2, ...}
{"event":3, ...}

{"event":4, ...}

Output
OK
ERROR!
OK

OK

…

{"event":5, ...}
{"event":6, ...}

chunk2

ERROR!
OK

Sunday, January 26, 14

Error stream

<label @ERROR>
<match **>
type le
...
</match>
</label>
Built-in @ERROR is used
when error occurred in “emit”
20
Lastly...
• Super alpha status!
• Adding / Removing features may occur
• There are several “to be implemented” features
• The release date is not fixed yet
• The initial release should be useful from day one
• Need feedbacks!
21
Sunday, January 26, 14
We’re Hiring!
Jan 23, 2014

www.treasuredata.com/
Sunday, January 26, 14

22

Weitere ähnliche Inhalte

Was ist angesagt?

Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on Windows
WO Community
 
Mojolicious mvc
Mojolicious mvcMojolicious mvc
Mojolicious mvc
Arpad Szasz
 
Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014
th0masr
 
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going FastPut a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
OSCON Byrum
 

Was ist angesagt? (20)

Mitmproxy usage v20141216
Mitmproxy usage v20141216Mitmproxy usage v20141216
Mitmproxy usage v20141216
 
Deploying WO on Windows
Deploying WO on WindowsDeploying WO on Windows
Deploying WO on Windows
 
Django rest framework tips and tricks
Django rest framework   tips and tricksDjango rest framework   tips and tricks
Django rest framework tips and tricks
 
Open stack and_vagrant-os-meetup-2015
Open stack and_vagrant-os-meetup-2015Open stack and_vagrant-os-meetup-2015
Open stack and_vagrant-os-meetup-2015
 
Mojolicious mvc
Mojolicious mvcMojolicious mvc
Mojolicious mvc
 
The WordPress REST API as a Springboard for Website Greatness
The WordPress REST API as a Springboard for Website GreatnessThe WordPress REST API as a Springboard for Website Greatness
The WordPress REST API as a Springboard for Website Greatness
 
My Top 5 Favorite Gems
My Top 5 Favorite GemsMy Top 5 Favorite Gems
My Top 5 Favorite Gems
 
Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014Sonata Block Bundle - sfPot March 2014
Sonata Block Bundle - sfPot March 2014
 
Developing OpenResty Framework
Developing OpenResty FrameworkDeveloping OpenResty Framework
Developing OpenResty Framework
 
Ansible module development 101
Ansible module development 101Ansible module development 101
Ansible module development 101
 
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
Strangers In The Night: Ruby, Rack y Sinatra - Herramientas potentes para con...
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
CPAN Dependency Heaven
CPAN Dependency HeavenCPAN Dependency Heaven
CPAN Dependency Heaven
 
React server side rendering performance
React server side rendering performanceReact server side rendering performance
React server side rendering performance
 
Automation and Ansible
Automation and AnsibleAutomation and Ansible
Automation and Ansible
 
Django rest framework
Django rest frameworkDjango rest framework
Django rest framework
 
Getting Started with Ansible
Getting Started with AnsibleGetting Started with Ansible
Getting Started with Ansible
 
Put a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going FastPut a Button on It: Removing Barriers to Going Fast
Put a Button on It: Removing Barriers to Going Fast
 
Building RESTful APIs
Building RESTful APIsBuilding RESTful APIs
Building RESTful APIs
 
High Performance Solution for PHP7
High Performance Solution for PHP7High Performance Solution for PHP7
High Performance Solution for PHP7
 

Ähnlich wie Fluentd v11 at tokuben

Presto conferencetokyo2019
Presto conferencetokyo2019Presto conferencetokyo2019
Presto conferencetokyo2019
wyukawa
 
Drupal Course 2012 - Code Driven Development
Drupal Course 2012 - Code Driven DevelopmentDrupal Course 2012 - Code Driven Development
Drupal Course 2012 - Code Driven Development
Attila Cs. Nagy
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
Code Mastery
 
1. MySql plugins
1. MySql plugins1. MySql plugins
1. MySql plugins
Roland Bouman
 

Ähnlich wie Fluentd v11 at tokuben (20)

Fluentd v1 and Roadmap
Fluentd v1 and RoadmapFluentd v1 and Roadmap
Fluentd v1 and Roadmap
 
Great Tools Heavily Used In Japan, You Don't Know.
Great Tools Heavily Used In Japan, You Don't Know.Great Tools Heavily Used In Japan, You Don't Know.
Great Tools Heavily Used In Japan, You Don't Know.
 
Presto conferencetokyo2019
Presto conferencetokyo2019Presto conferencetokyo2019
Presto conferencetokyo2019
 
Fluentd at HKOScon
Fluentd at HKOSconFluentd at HKOScon
Fluentd at HKOScon
 
Drupal Course 2012 - Code Driven Development
Drupal Course 2012 - Code Driven DevelopmentDrupal Course 2012 - Code Driven Development
Drupal Course 2012 - Code Driven Development
 
Ship It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails EcosystemShip It ! with Ruby/ Rails Ecosystem
Ship It ! with Ruby/ Rails Ecosystem
 
Magento 2 Workflows
Magento 2 WorkflowsMagento 2 Workflows
Magento 2 Workflows
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
PhpStorm for WordPress
PhpStorm for WordPressPhpStorm for WordPress
PhpStorm for WordPress
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Tracing and profiling my sql (percona live europe 2019) draft_1
Tracing and profiling my sql (percona live europe 2019) draft_1Tracing and profiling my sql (percona live europe 2019) draft_1
Tracing and profiling my sql (percona live europe 2019) draft_1
 
Build automation best practices
Build automation best practicesBuild automation best practices
Build automation best practices
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flow
 
Fluentd v1 and future at techtalk
Fluentd v1 and future at techtalkFluentd v1 and future at techtalk
Fluentd v1 and future at techtalk
 
CubeJS: eBay’s Node.js Adoption Journey
CubeJS: eBay’s Node.js Adoption JourneyCubeJS: eBay’s Node.js Adoption Journey
CubeJS: eBay’s Node.js Adoption Journey
 
1. MySql plugins
1. MySql plugins1. MySql plugins
1. MySql plugins
 
Client Side Performance for Back End Developers - Cambridge .NET User Group -...
Client Side Performance for Back End Developers - Cambridge .NET User Group -...Client Side Performance for Back End Developers - Cambridge .NET User Group -...
Client Side Performance for Back End Developers - Cambridge .NET User Group -...
 
Fluentd - RubyKansai 65
Fluentd - RubyKansai 65Fluentd - RubyKansai 65
Fluentd - RubyKansai 65
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 

Mehr von Treasure Data, Inc.

글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
Treasure Data, Inc.
 

Mehr von Treasure Data, Inc. (20)

GDPR: A Practical Guide for Marketers
GDPR: A Practical Guide for MarketersGDPR: A Practical Guide for Marketers
GDPR: A Practical Guide for Marketers
 
AR and VR by the Numbers: A Data First Approach to the Technology and Market
AR and VR by the Numbers: A Data First Approach to the Technology and MarketAR and VR by the Numbers: A Data First Approach to the Technology and Market
AR and VR by the Numbers: A Data First Approach to the Technology and Market
 
Introduction to Customer Data Platforms
Introduction to Customer Data PlatformsIntroduction to Customer Data Platforms
Introduction to Customer Data Platforms
 
Hands On: Javascript SDK
Hands On: Javascript SDKHands On: Javascript SDK
Hands On: Javascript SDK
 
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD WorkflowHands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
 
Brand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
Brand Analytics Management: Measuring CLV Across Platforms, Devices and AppsBrand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
Brand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
 
How to Power Your Customer Experience with Data
How to Power Your Customer Experience with DataHow to Power Your Customer Experience with Data
How to Power Your Customer Experience with Data
 
Why Your VR Game is Virtually Useless Without Data
Why Your VR Game is Virtually Useless Without DataWhy Your VR Game is Virtually Useless Without Data
Why Your VR Game is Virtually Useless Without Data
 
Connecting the Customer Data Dots
Connecting the Customer Data DotsConnecting the Customer Data Dots
Connecting the Customer Data Dots
 
Harnessing Data for Better Customer Experience and Company Success
Harnessing Data for Better Customer Experience and Company SuccessHarnessing Data for Better Customer Experience and Company Success
Harnessing Data for Better Customer Experience and Company Success
 
Packaging Ecosystems -Monki Gras 2017
Packaging Ecosystems -Monki Gras 2017Packaging Ecosystems -Monki Gras 2017
Packaging Ecosystems -Monki Gras 2017
 
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
 
Keynote - Fluentd meetup v14
Keynote - Fluentd meetup v14Keynote - Fluentd meetup v14
Keynote - Fluentd meetup v14
 
Introduction to New features and Use cases of Hivemall
Introduction to New features and Use cases of HivemallIntroduction to New features and Use cases of Hivemall
Introduction to New features and Use cases of Hivemall
 
Scalable Hadoop in the cloud
Scalable Hadoop in the cloudScalable Hadoop in the cloud
Scalable Hadoop in the cloud
 
Using Embulk at Treasure Data
Using Embulk at Treasure DataUsing Embulk at Treasure Data
Using Embulk at Treasure Data
 
Scaling to Infinity - Open Source meets Big Data
Scaling to Infinity - Open Source meets Big DataScaling to Infinity - Open Source meets Big Data
Scaling to Infinity - Open Source meets Big Data
 
Treasure Data: Move your data from MySQL to Redshift with (not much more tha...
Treasure Data:  Move your data from MySQL to Redshift with (not much more tha...Treasure Data:  Move your data from MySQL to Redshift with (not much more tha...
Treasure Data: Move your data from MySQL to Redshift with (not much more tha...
 
Treasure Data From MySQL to Redshift
Treasure Data  From MySQL to RedshiftTreasure Data  From MySQL to Redshift
Treasure Data From MySQL to Redshift
 
Unifying Events and Logs into the Cloud
Unifying Events and Logs into the CloudUnifying Events and Logs into the Cloud
Unifying Events and Logs into the Cloud
 

KĂźrzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

KĂźrzlich hochgeladen (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Fluentd v11 at tokuben

  • 1. Fluentd v11 Jan 23, 2014 Masahiro Nakagawa Treasure Data, Inc www.treasuredata.com/ Sunday, January 26, 14 1
  • 2. Who are you? • Masahiro Nakagawa • • Treasure Data, Inc. • • • @repeatedly Senior Software Engineer Fluentd, td-agent, etc... Dlang, MessagePack, ... 2 Sunday, January 26, 14
  • 4. MxN→M+N Access logs Alerting Apache Nagios App logs Analysis Frontend MongoDB Backend MySQL Hadoop System logs syslogd buffer / buffer / routing Databases Archiving Amazon S3 4 Sunday, January 26, 14
  • 5. v10 • Mainly for log forwarding • with good performance • working in many productions reliably • Various plugins are released • There are 200+ plugins! • Mainly for CRuby 5 Sunday, January 26, 14
  • 6. Why v11? • We want more useful features, but... • Changing the internal architecture is hard • Keeping the external API is even harder • Originally, v10 was started as a prototype • Need drastic changes for the future :) 6 Sunday, January 26, 14
  • 7. What’s new? • ServerEngine based reliable architecture • Zero-downtime restarting • Filter / Label for flexible record handling • Improved conguration • Improved plugin development 7 Sunday, January 26, 14
  • 8. ServerEngine based • Robust signal handling • Put a signal into Queue rst • Built-in supervisor • Multiprocess support • No need for in_multiprocess plugin 8 Sunday, January 26, 14
  • 9. Multi Process Supervisor Worker Worker Worker <worker> input tail output mongo </worker> <worker> input forward output webhdfs </worker> <worker> input foo output bar </worker> Separate stream pipelines in one instance! 9 Sunday, January 26, 14
  • 10. Zero downtime restart • SocketManager shares resources with workers Supervisor 1. Listen to TCP socket TCP 10 Sunday, January 26, 14
  • 11. Zero downtime restart • SocketManager shares resources with workers Supervisor TCP 1. Listen to TCP socket 2. Pass its socket to worker heartbeat Worker TCP 11 Sunday, January 26, 14
  • 12. Zero downtime restart • SocketManager shares resources with workers Supervisor TCP heartbeat Worker 1. Listen to TCP socket 2. Pass its socket to worker 3. Do same action at worker restarting with keeping TCP socket Worker TCP 12 Sunday, January 26, 14
  • 13. Filter / Label support • No more tag-related tricks! • add_tag_xxx, remove_tag_xxx, etc... • Redirect events to another group • Much easier to group and share plugins 13 Sunday, January 26, 14
  • 14. Filter • <match> can have nested <match> • Conguration format is not xed! v10: <match access.**> type flowcounter add_tag_prex counted </match> <match counted.**> typo growthforecast </match> v11: <match access.** copy> type flowcounter <match **> typo growthforecast </match> </match> 14 Sunday, January 26, 14
  • 15. Label • <label> can contain multiple <match> • out_redirect can forward events to <label> <match access.**> type rewrite_tag_lter ... <match bang.**> type redirect to_label blackhole </match> ... </match> <label blackhole> <match **> type null </match> </label> bang’s record go away! 15 Sunday, January 26, 14
  • 16. Improved conguration • Can use Hash, Array and others • No need for “,” or similar tricks • You can write Ruby directly • Worker pragma • Separate plugins in each process • Support the v10 compatible mode 16 Sunday, January 26, 14
  • 17. New parameter types • Can write complex values without DSL! • Can use Ruby code for conguration Hash, Array, etc: Embedded Ruby code: <source> type my_tail keys ["k1", "k2", "k3"] </source> <match **> typo my_lter add_keys {"k1" : "v1"} </match> Sunday, January 26, 14 <match ** copy> type my_lter env "#{ENV['KEY']}" </match> • • • Socket.gethostname `command` etc... 17
  • 18. Improved plugin • Actor • Abstraction layer for several actions • Error stream • with @ERROR label • Log level per plugin • No more global API, Engine.emit, $log, etc... 18 Sunday, January 26, 14
  • 19. Actor • Easy to write popular routines v10: v11: class TimerWatcher < Coolio::TimerWatcher ... end def start @loop = Coolio::Loop.new @timer = ... @loop.attach(@timer) @thread = ... end Sunday, January 26, 14 actor.every(@interval) { event_router.emit(...) } 19
  • 20. Error stream • Can handle an error at each record level Input {"event":1, ...} chunk1 {"event":2, ...} {"event":3, ...} {"event":4, ...} Output OK ERROR! OK OK … {"event":5, ...} {"event":6, ...} chunk2 ERROR! OK Sunday, January 26, 14 Error stream <label @ERROR> <match **> type le ... </match> </label> Built-in @ERROR is used when error occurred in “emit” 20
  • 21. Lastly... • Super alpha status! • Adding / Removing features may occur • There are several “to be implemented” features • The release date is not xed yet • The initial release should be useful from day one • Need feedbacks! 21 Sunday, January 26, 14
  • 22. We’re Hiring! Jan 23, 2014 www.treasuredata.com/ Sunday, January 26, 14 22