60 likes | 183 Vues
This document provides an overview of the messaging system for the Lemon architecture, highlighting key constraints in reusing existing agents and sensors, ensuring compatibility, and configuration considerations. Focused on the general architecture, it covers aspects such as data publication, cross-agent communication, metadata handling, and IPC implementation using TCP/IP. It emphasizes the importance of maintaining backward compatibility and being generic in development while expecting potential additional requirements in messaging and configuration management across various platforms.
E N D
LEMON @ Messaging System Ivan, Omar, Sergio 14 march 2012
Agenda • General architecture • Constrains: • re-use lemon-agent and already developed sensors • Lemon producer • Constrains: • re-use existing solutions to publish data • do not touch agent/core_sensors • expensive development • backward compatibility with current lemon-server/repository • if to develop for lemon, be generic as much as possible • expect additional requirements (e.g. cross agent communication, tagging) • Message content • Constrains • tagging • metadata included/excluded • versioning/source • Configuration • Constrains • for all nodes (quattor, puppet, non-managed) Presentation Title - 2
General Architecture Oracle Lemon Server tcp/ip Lemon Producer Messaging Queue tcp/ip Lemon Agent msak Local Cache Directory Queue Sensor 1 Sensor 2 Sensor 3 Presentation Title - 3
Lemon Producer Re-use knowledge (thanks to Lionel): • directory queues together with the “msak” tool tcp/ip Lemon Producer msak Lemon Agent • More IPCs considered. Why tcp/ip? • already implemented (config parameter) • cross agent communication Directory Queue • Lemon producer functionality • receive/aggregate data from lemon-agent(s) • logic depends on requirements • serializes message into JSON • multiple formats/versions • add tags • provide functionality for additional plugin • not to have multiple wrappers • add new agent and/or replace lemon-agent Presentation Title - 4
Message Original Message A1 0 lemon-slc5#10002 1331545236 file N/A 1.0.1# lemon-slc5#10003 1331545236 1 2 2# lemon-slc5#10005 1331545236 660# • Possible tags • source • schema version • whatever registered for schema • Meta data • include overhead • exclude metadata dictionary JSON Message { "body": "{ "source": "lemon", "samples": [ { "node": "lemon-slc5", "timeStamp": "1331545236", "metricId": "10002", "values": ["file", "N/A", "1.0.1"] }, { "node": "lemon-slc5", "timeStamp": "1331545236", "metricId": "10003", "values": ["1", "2", "2"] }, { "node": "lemon-slc5", "timeStamp": "1331545236", "metricId": "10005", "values": ["660"] } ], "messageType": "0", "protocolVersion": "A1" }", "header": {"destination": "/topic/lemon.test.agent"}, "encoding": {} } Presentation Title - 5
Configuration • Lemon-agent quattorized/puppetized • Lemon producer ? • which platform do we want to support (quattor, puppet, no mgmgt)? • what will be configured tags as well? • local handling of tags by command-line (like lemon-host-check enable/disable)? • runtime change of producer config (e.g. tags) by push mechanism serverclient? • Large scale test discussion • production Apollo broker • topics/queue • consumer • when Presentation Title - 6