You can either select "T=" & SUM(xyz) [this gives time series values] *or* "T" & XYZ [this gives raw values]
One of the below will work
"select_fields": [
"T=","COUNT(dTrace)", "SUM(dtrace.val1)", "SUM(dtrace.val2)"
],
or
"select_fields": [
"T","COUNT(dTrace)", "dtrace.val1", "dtrace.val2"
],
-
Raj
On May 7, 2015, at 4:44 AM, <[email protected]>
wrote:
> Hi Megh and Anish,
>
> Thanks for your support.
>
> Making the query to the UVE I get the following:
> {
> "AlbertoAgent": {
> "cpu": 31337,
> "dTrace": [
> {
> "StatTable.AlbertoAgent.dTrace": [
> {
> "COUNT(dTrace)": 1,
> "SUM(dTrace.val1)": 1,
> "SUM(dTrace.val2)": 2
> }
> ]
> }
> ]
> }
> }
>
> That message is produced by the following C++ code:
> AlbertoAgent vnAgent;
>
> vnAgent.set_name("lvelasco");
> vnAgent.set_deleted(false);
> vnAgent.set_cpu(31337);
>
> std::vector<DataTrace> dt(1);
> dt[0].set_val1(1);
> dt[0].set_val2(2);
> vnAgent.set_cpu(31337);
> vnAgent.set_dTrace(dt);
>
> AlbertoTrace::Send(vnAgent);
>
> This code is executed in a loop fashion.
>
> Now I want to get the values produced over time by this agent so I did the
> following query:
>
> {
> "end_time": "now",
> "select_fields": [
> "T","COUNT(dTrace)", "SUM(dtrace.val1)", "SUM(dtrace.val2)"
> ],
> "sort_fields": [],
> "start_time": "now-60m",
> "table": "StatTable.AlbertoAgent.dTrace",
> "where": [
> [
> {
> "name": "name",
> "op": 1,
> "suffix": null,
> "value": "lvelasco",
> "value2": null
> }
> ]
> ]
>
> }
>
> However it only returns me the "T","COUNT(dTrace)" part and not val1 and
> val2. What I'm doing wrong?
>
> Best regards,
> Alberto.
>
>
>
>
> Quoting Megh Bhatt <[email protected]>:
>
>> Hi Albero,
>> trace is a keyword, please change name to data_trace. Also please have
>> optional bool deleted as element number 2 and then you should be good to go
>>
>> Thanks
>>
>> Megh
>>
>>
>>
>>> On May 6, 2015, at 6:57 AM, "[email protected]" <[email protected]>
>>> wrote:
>>>
>>> Hi anish,
>>>
>>> Thanks for your reply.
>>>
>>> In that example, aggregation type "union" is applied over all the elements
>>> of type ProcessCpuInfo?
>>>
>>> I have adapted my structure following your example:
>>> struct DataTrace {
>>> 1: u64 val1
>>> 2: u64 val2
>>> }
>>>
>>> struct AlbertoAgent {
>>> 1: string name
>>> (key="ObjectAlberto")
>>> 2: optional u64 cpu
>>> 3: optional bool deleted
>>> 4: optional list<DataTrace> trace
>>> (tags=".val1,.val2")
>>> }
>>>
>>> uve sandesh AlbertoTrace {
>>> 1: AlbertoAgent data
>>> }
>>>
>>> However there is a syntax error that I'm not able to detect (Error
>>> message:(last token was 'trace')syntax error).
>>>
>>> Am I in the correct way? Where is the error?
>>>
>>> Thanks for your support,
>>> Alberto.
>>>
>>>
>>> Quoting Anish Mehta <[email protected]>:
>>>
>>>> Hi Alberto,
>>>>
>>>> I assume you are talking about the stats functionality, which is turned on
>>>> using the "tags" annotation.
>>>> I can help more if you send the sandesh file
>>>>
>>>> Meanwhile, I will demonstrate this feature using Analytics CPU Info.
>>>>
>>>> This is the sandesh file:
>>>>
>>>> struct AnalyticsCpuState {
>>>> 1: string name
>>>> (key="ObjectCollectorInfo")
>>>> 2: optional bool deleted
>>>> 3: optional list<cpuinfo.ProcessCpuInfo> cpu_info
>>>> (tags=".module_id,.mem_virt,.cpu_share,.mem_res", aggtype="union")
>>>> }
>>>>
>>>> uve sandesh AnalyticsCpuStateTrace {
>>>> 1: AnalyticsCpuState data
>>>> }
>>>>
>>>>
>>>> The tags annotation will cause the "cpu_info" attribute to be recorded as
>>>> a Stat Sample.
>>>> This sample can then be queried via the Analytics Query API (the same API
>>>> used for the object-log)
>>>> The attributes listed in the tags annotation will be used for indexing.
>>>> (the "where" part of the query)
>>>>
>>>>
>>>> We implicitly index by the Source of message (Source of the Sandesh
>>>> Generator) and the UVE Key.
>>>> These fields are recorded as "name" and "Source".
>>>> The other index fields (as per the tags annotation) in this case are
>>>> cpu_info.module_id, cpu_info.mem_virt, cpu_info.cpu_share and
>>>> cpu_info.mem_res.
>>>> There are two other fields that will be present the sample -
>>>> cpu_info.inst_id and cpu_info.module_id.
>>>> These are not in the tags annotation, so we will not index by them.
>>>>
>>>> From the command line, you can use the "contrail-stats" command to
>>>> exercise the Analytics Query API for stats.
>>>> Here's an example of usage:
>>>>
>>>> contrail-stats --dtable AnalyticsCpuState.cpu_info --where "Source=*"
>>>> --select "T=300" "COUNT(cpu_info)" "name" "cpu_info.module_id"
>>>> "SUM(cpu_info.cpu_share)" --last 30m
>>>>
>>>> This results in the following Analytics API POST request:
>>>> {"start_time": "now-30m", "sort_fields": [], "end_time": "now",
>>>> "select_fields": ["T=300", "COUNT(cpu_info)", "name",
>>>> "cpu_info.module_id", "SUM(cpu_info.cpu_share)"], "table":
>>>> "StatTable.AnalyticsCpuState.cpu_info", "where": [[{"suffix": null,
>>>> "value2": null, "name": "Source", "value": "", "op": 7}]]}
>>>>
>>>> You can get more information here:
>>>> http://www.opencontrail.org/statistics-in-opencontrail-analytics/
>>>> This blog entry will also explain what "T" and "T=" mean.
>>>>
>>>> If you share your sandesh file, I can give you more specific pointers.
>>>> Please reach out if you have other questions about this.
>>>>
>>>> Regards,
>>>>
>>>> Anish
>>>>
>>>>
>>>>> On 5/4/15, 3:39 AM, "[email protected]" <[email protected]> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Any clues about how can I make a flow like the ones from Analytics
>>>>> node CPU info? I cannot figure how to do it with sandesh. Is it done
>>>>> using list type?
>>>>>
>>>>> Best Regards,
>>>>> Alberto.
>>>>>
>>>>>
>>>>>
>>>>> Quoting [email protected]:
>>>>>
>>>>>> Hi Anish,
>>>>>>
>>>>>> There was a mistake in the changes I did. Now it's correct and I get
>>>>>> this:
>>>>>>
>>>>>> agutierrez@Mahalanobis:~/Documents/thesis/OpenContrail/query$
>>>>>> ./getQuery.sh /uves/alberto/lvelasco?flat
>>>>>> % Total % Received % Xferd Average Speed Time Time
>>>>>> Time Current
>>>>>> Dload Upload Total Spent Left
>>>>>> Speed
>>>>>> 100 186 0 186 0 0 147 0 --:--:-- 0:00:01
>>>>>> --:--:-- 147
>>>>>> {
>>>>>> "UveVirtualNetworkAgent": {
>>>>>> "cpu": 31337,
>>>>>> "cpu_info": [
>>>>>> {
>>>>>> "StatTable.UveVirtualNetworkAgent.cpu_info": [
>>>>>> {
>>>>>> "COUNT(cpu_info)": 1,
>>>>>> "SUM(cpu_info.att1)": 2090,
>>>>>> "SUM(cpu_info.att2)": 209
>>>>>> }
>>>>>> ]
>>>>>> }
>>>>>> ]
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> I modified slightly the structure to have a list inside. Now my
>>>>>> question is the following: How can I make a flow like the ones from
>>>>>> Analytics node CPU info? I have taken a look to some .sandesh files
>>>>>> but I cannot figure out. Also, how can be "T" and "T=" specified?
>>>>>>
>>>>>> Thank you for your help.
>>>>>>
>>>>>> Best regards,
>>>>>> Alberto.
>>>>>>
>>>>>> Quoting Anish Mehta <[email protected]>:
>>>>>>
>>>>>>> Hi Alberto.
>>>>>>>
>>>>>>> The schema looks correct.
>>>>>>>
>>>>>>> Both contrail-logs and the Query API use the _STAT_TABLES variable.
>>>>>>> They should work if you change that variable as directed.
>>>>>>> Please send me the output of "contrail-logs ?help?, and the contents of
>>>>>>> your viz/constants.py file.
>>>>>>>
>>>>>>>
>>>>>>> Lets work on the UVE part.
>>>>>>> This is what you can do:
>>>>>>>
>>>>>>> 1.
>>>>>>> Check if the UVE table type is available in contrail-analytics-api.
>>>>>>> Look at http://xx.xx.xx.xx:8081/analytics/uves
>>>>>>> Do you see an entry like this?:
>>>>>>>
>>>>>>> {
>>>>>>> href: "http://xx.xx.xx.xx:8081/analytics/uves/albertos",
>>>>>>> name: ?albertos"
>>>>>>> },
>>>>>>>
>>>>>>>
>>>>>>> 2.
>>>>>>> Send the UVE from your application.
>>>>>>> When you called InitGenerator, you can specify an Introspect port.
>>>>>>> I?ll assume you used 5555.
>>>>>>> After your application is up, and you have sent your UVE, check for
>>>>>>> this:
>>>>>>> http://xx.xx.xx.xx:5555/Snh_SandeshUVETypesReq?
>>>>>>>
>>>>>>> Do you see an entry for you structure ?TestAgent?
>>>>>>> You can go onto the link for TestAgent and the the last values you
>>>>>>> sent.
>>>>>>>
>>>>>>> Also, check your connection to the collector:
>>>>>>> http://xx.xx.xx.xx:5555/Snh_CollectorInfoRequest?
>>>>>>>
>>>>>>>
>>>>>>> 3.
>>>>>>> If all this worked, you should see the UVE at
>>>>>>> http://xx.xx.xx.xx:8081/analytics/uves/albertos
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Anish
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> On 4/24/15, 9:16 AM, "[email protected]" <[email protected]> wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I compiled viz.sandesh using "Sandesh --gen py viz.sandesh" directly
>>>>>>>> and I substituted the .py. I done this using the same structure as
>>>>>>>> before but changing the name of the table and following your
>>>>>>>> instructions, but I have problems with it.
>>>>>>>>
>>>>>>>> I get this schema as the table schema:
>>>>>>>> {
>>>>>>>> "columns": [
>>>>>>>> {
>>>>>>>> "datatype": "int",
>>>>>>>> "index": false,
>>>>>>>> "name": "MessageTS",
>>>>>>>> "select": null,
>>>>>>>> "suffixes": null
>>>>>>>> },
>>>>>>>> {
>>>>>>>> "datatype": "string",
>>>>>>>> "index": true,
>>>>>>>> "name": "ObjectId",
>>>>>>>> "select": null,
>>>>>>>> "suffixes": null
>>>>>>>> },
>>>>>>>> {
>>>>>>>> "datatype": "string",
>>>>>>>> "index": true,
>>>>>>>> "name": "Source",
>>>>>>>> "select": null,
>>>>>>>> "suffixes": null
>>>>>>>> },
>>>>>>>> {
>>>>>>>> "datatype": "string",
>>>>>>>> "index": true,
>>>>>>>> "name": "ModuleId",
>>>>>>>> "select": null,
>>>>>>>> "suffixes": null
>>>>>>>> },
>>>>>>>> {
>>>>>>>> "datatype": "string",
>>>>>>>> "index": true,
>>>>>>>> "name": "Messagetype",
>>>>>>>> "select": null,
>>>>>>>> "suffixes": null
>>>>>>>> },
>>>>>>>> {
>>>>>>>> "datatype": "string",
>>>>>>>> "index": false,
>>>>>>>> "name": "ObjectLog",
>>>>>>>> "select": null,
>>>>>>>> "suffixes": null
>>>>>>>> },
>>>>>>>> {
>>>>>>>> "datatype": "string",
>>>>>>>> "index": false,
>>>>>>>> "name": "SystemLog",
>>>>>>>> "select": null,
>>>>>>>> "suffixes": null
>>>>>>>> }
>>>>>>>> ],
>>>>>>>> "type": "OBJECT"
>>>>>>>> }
>>>>>>>>
>>>>>>>> Does this make sense?
>>>>>>>>
>>>>>>>> Moreover, the following thing happens:
>>>>>>>> contrail-logs --object-type alberto
>>>>>>>>>> HTTP error code: 404
>>>>>>>>
>>>>>>>> It seems to not be available as UVE.
>>>>>>>>
>>>>>>>>
>>>>>>>> Also I have a question regarding to _STAT_TABLES variable in
>>>>>>>> viz.sandesh. If I define the structure in this table, will it be
>>>>>>>> available in the query part of the web?
>>>>>>>>
>>>>>>>> Thank you for your assistance,
>>>>>>>> Alberto.
>>>>>>>>
>>>>>>>> Quoting [email protected]:
>>>>>>>>
>>>>>>>>> Hi Anish,
>>>>>>>>>
>>>>>>>>> Thank you for your reply. I'm having the following problem when
>>>>>>>>> compiling:
>>>>>>>>>
>>>>>>>>> ...
>>>>>>>>> Running virtualenv with interpreter testroot/bin/python
>>>>>>>>> New python executable in analytics_test/bin/python
>>>>>>>>> Installing
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Setuptools............................................................
>>>>>>>>> ...
>>>>>>>>> ..............................done.
>>>>>>>>> Installing
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Pip...................................................................
>>>>>>>>> ...
>>>>>>>>> ..............................................................done.
>>>>>>>>> /bin/bash -c "source
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> /home/agutierrez/workspace/Contrail/opencontrail2/build/debug/analytic
>>>>>>>>> s_t
>>>>>>>>> est/bin/activate; pip install
>>>>>>>>> --download-cache=/tmp/cache/agutierrez/systemless_test
>>>>>>>>> greenlet==0.4.1
>>>>>>>>> gevent==0.13.8 eventlet==0.9.17 testtools==0.9.21 fixtures==0.3.12
>>>>>>>>> requests>=1.1.0 lxml==2.3.3 geventhttpclient==1.0a prettytable==0.7.2
>>>>>>>>> psutil==0.4.1 redis==2.7.1 xmltodict==0.2 thrift==0.8.0
>>>>>>>>> bottle==0.11.6
>>>>>>>>> mock==1.0.1 kafka-python==0.9.2 kazoo==1.3.1
>>>>>>>>> stevedore"
>>>>>>>>> scons: *** [build/debug/opserver/test/greenlet] Error 1
>>>>>>>>> scons: building terminated because of errors.
>>>>>>>>>
>>>>>>>>> Do you have any idea that what can be the problem or if there is any
>>>>>>>>> log file that could provide more information about the error?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>> Alberto.
>>>>>>>>>
>>>>>>>>> Quoting Anish Mehta <[email protected]>:
>>>>>>>>>
>>>>>>>>>> Hi Alberto,
>>>>>>>>>>
>>>>>>>>>> Adding your own table is possible.
>>>>>>>>>> You need to add some entries to
>>>>>>>>>> /controller/src/analytics/viz.sandesh
>>>>>>>>>> It does not need the collector to be rebuilt, but it does require
>>>>>>>>>> rebuilding contrail-analytics-api.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> I'm going to assume the table name "ObjectAlberto" (instead of
>>>>>>>>>> "ObjectTableName")
>>>>>>>>>>
>>>>>>>>>> I'm going to make this UVE accessible via the Analytics API as
>>>>>>>>>> follows:
>>>>>>>>>> http://xx.xx.xx.xx:8081/analytics/uves/albertos
>>>>>>>>>>
>>>>>>>>>> I'm going to make the ObjectLog visible via the Analytics Query API
>>>>>>>>>> as
>>>>>>>>>> well (as you mentioned in your email)
>>>>>>>>>> Based on this API, from the command line of the analytics node you
>>>>>>>>>> will be
>>>>>>>>>> able to do this:
>>>>>>>>>> contrail-logs --object-type alberto
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 1. Changes in controller/src/analytics/viz.sandesh
>>>>>>>>>>
>>>>>>>>>> const string ALBERTO_TABLE = "ObjectAlberto"
>>>>>>>>>> const string ALBERTO_DISPLAY_NAME = "Alberto"
>>>>>>>>>> ...
>>>>>>>>>> const map<string, string> UVE_MAP = {
>>>>>>>>>> ...
>>>>>>>>>> "alberto" : ALBERTO_TABLE,
>>>>>>>>>> }
>>>>>>>>>> ...
>>>>>>>>>> const map<string, objtable_info> _OBJECT_TABLES = {
>>>>>>>>>> ALBERTO_TABLE : {
>>>>>>>>>> 'objtable_display_name' : ALBERTO_DISPLAY_NAME
>>>>>>>>>> 'log_query_name' : "alberto"
>>>>>>>>>> }
>>>>>>>>>> }
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2. Rebuild contrail-analytics-api
>>>>>>>>>> sb/controller/src$ scons -u opserver
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 3. Install and test on target
>>>>>>>>>> You should rebuild the contrail-analytics package and install it on
>>>>>>>>>> your
>>>>>>>>>> target.
>>>>>>>>>>
>>>>>>>>>> For this kind of change, there is an alternative installation
>>>>>>>>>> method as
>>>>>>>>>> well, given below:
>>>>>>>>>>
>>>>>>>>>> This is the generated file that will change when you rebuild:
>>>>>>>>>> sb/controller/src$ ls
>>>>>>>>>> ../../build/debug/opserver/opserver/sandesh/viz/constants.py
>>>>>>>>>>
>>>>>>>>>> You can copy it onto your analytics node.
>>>>>>>>>> It will be at a location such as:
>>>>>>>>>> /usr/lib/python2.7/dist-packages/opserver/sandesh/viz/constants.py
>>>>>>>>>>
>>>>>>>>>> After overwriting the file (you should take a backup first, just in
>>>>>>>>>> case),
>>>>>>>>>> restart contrail-analytics-api:
>>>>>>>>>> service contrail-analytics-api restart
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 4. Test the UVE Analytics API and Analytics Query API after starting
>>>>>>>>>> your
>>>>>>>>>> application and connecting to the collector.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>>
>>>>>>>>>> Anish
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 4/23/15, 1:34 AM, "[email protected]" <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hello Anish,
>>>>>>>>>>>
>>>>>>>>>>> Thanks for your reply. What we are going to do is a little
>>>>>>>>>>> application
>>>>>>>>>>> that sends it's own metrics to the collector so we can retrieve
>>>>>>>>>>> that
>>>>>>>>>>> data using de Analytics API.
>>>>>>>>>>>
>>>>>>>>>>> For example:
>>>>>>>>>>>
>>>>>>>>>>> struct TestAgent {
>>>>>>>>>>> 1: string name(key="ObjectTableName")
>>>>>>>>>>> 2: optional i32 valueToBeSent1
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> uve sandesh TestTrage {
>>>>>>>>>>> 1: TestAgent data;
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> This kind of message should be stored in some way in Cassandra
>>>>>>>>>>> databases and be available to the API users. I understand that
>>>>>>>>>>> (key="ObjectTableName") makes reference to a new table with that
>>>>>>>>>>> name
>>>>>>>>>>> that can be queried from the API. For me that is the concept of
>>>>>>>>>>> "custom table", tables that are administrator/developer defined
>>>>>>>>>>> different from base contrail tables.
>>>>>>>>>>>
>>>>>>>>>>> It would be retrieved with a POST query to the API similar to this:
>>>>>>>>>>> {
>>>>>>>>>>> "end_time": "now",
>>>>>>>>>>> "select_fields": [
>>>>>>>>>>> "valueToBeSent1"
>>>>>>>>>>> ],
>>>>>>>>>>> "sort_fields": [],
>>>>>>>>>>> "start_time": "now-60m",
>>>>>>>>>>> "table": "ObjectTableName",
>>>>>>>>>>> "where": [
>>>>>>>>>>> [
>>>>>>>>>>> {
>>>>>>>>>>> "name": "Source",
>>>>>>>>>>> "op": 1,
>>>>>>>>>>> "suffix": null,
>>>>>>>>>>> "value": "GeneratorApplication",
>>>>>>>>>>> "value2": null
>>>>>>>>>>> }
>>>>>>>>>>> ]
>>>>>>>>>>> ]
>>>>>>>>>>> }
>>>>>>>>>>>
>>>>>>>>>>> Is this possible? If it is, do I have to do any step apart from
>>>>>>>>>>> send
>>>>>>>>>>> the structure using the code generated by Sandesh compiler?
>>>>>>>>>>>
>>>>>>>>>>> If it is not possible, is there any workaround? The only way that
>>>>>>>>>>> comes to my mind is that we could query directly to message table,
>>>>>>>>>>> filter the messages we don't want and process the XMLs but that
>>>>>>>>>>> solution wouldn't be clean.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I hope I explained it correctly. Thank you for your assistance.
>>>>>>>>>>>
>>>>>>>>>>> Best regards,
>>>>>>>>>>> Alberto Gutiérrez.
>>>>>>>>>>>
>>>>>>>>>>> Quoting Anish Mehta <[email protected]>:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> The schemas for new Sandesh types do not need to be compiled or
>>>>>>>>>>>> loaded
>>>>>>>>>>>> onto the Collector.
>>>>>>>>>>>> The collector gets XML-encoded messages from the generators and
>>>>>>>>>>>> stores
>>>>>>>>>>>> them according to their sandesh types and the contained
>>>>>>>>>>>> annotations.
>>>>>>>>>>>>
>>>>>>>>>>>> Sandesh Types and how they work are explained here:
>>>>>>>>>>>> http://www.opencontrail.org/sandesh-a-sdn-analytics-interface/
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I¹m not sure what you mean by ³custom tables².
>>>>>>>>>>>> Please send us a sample sandesh file and describe what you are
>>>>>>>>>>>> trying to
>>>>>>>>>>>> do, and we can discuss further.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>>
>>>>>>>>>>>> Anish
>>>>>>>>>>>>
>>>>>>>>>>>> On 4/22/15, 6:53 AM, "[email protected]" <[email protected]>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Dear all,
>>>>>>>>>>>>>
>>>>>>>>>>>>> When creating a new sandesh structure, do I need to send somehow
>>>>>>>>>>>>> the
>>>>>>>>>>>>> schema to the collectors so they will understand it or it will be
>>>>>>>>>>>>> added automatically with the first message it recieves?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks for your attention,
>>>>>>>>>>>>> Alberto.
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Dev mailing list
>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://lists.opencontrail.org/mailman/listinfo/dev_lists.opencontr
>>>>>>>>>>>>> ail
>>>>>>>>>>>>> .or
>>>>>>>>>>>>> g
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Dev mailing list
>>>>>>>>> [email protected]
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> http://lists.opencontrail.org/mailman/listinfo/dev_lists.opencontrail.
>>>>>>>>> org
>>>
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> [email protected]
>>> http://lists.opencontrail.org/mailman/listinfo/dev_lists.opencontrail.org
>>
>
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://lists.opencontrail.org/mailman/listinfo/dev_lists.opencontrail.org
signature.asc
Description: Message signed with OpenPGP using GPGMail
_______________________________________________ Dev mailing list [email protected] http://lists.opencontrail.org/mailman/listinfo/dev_lists.opencontrail.org
