On Wed, Jul 4, 2012 at 12:30 PM, Srinath Perera <srin...@wso2.com> wrote:
> Hi All, > > Sorry for late reply > > As I see it, secondary indexes are not a part of the agent API, which is > about collecting the data. > > Secondary index is about analyzing / presenting the data. So if user > need secondary indexes, they will have to go to Cassandra directly, and > define them. I think we can do the same in logging impl. > > Yes, after last friday stratos-logging review, we decided to have real time logs from the memory and to view older logs using bam analytics. So we don't have this requirement anymore, We are writing a separate log tool kit for BAM so that users can download long running logs separately. > --Srinath > > > On Fri, Jun 22, 2012 at 12:34 AM, Suhothayan Sriskandarajah <s...@wso2.com > > wrote: > >> >> >> On Fri, Jun 22, 2012 at 2:36 PM, Amani Soysa <am...@wso2.com> wrote: >> >>> >>> >>> On Fri, Jun 22, 2012 at 2:29 PM, Tharindu Mathew <thari...@wso2.com>wrote: >>> >>>> This can be a useful feature for realtime requirements. But we need to >>>> follow some proper convention as this changes the event stream definition >>>> This is then an extensive change, and we are close to feature freezing. >>>> >>>> On Fri, Jun 22, 2012 at 2:15 PM, Amani Soysa <am...@wso2.com> wrote: >>>> >>>>> >>>>> >>>>> On Fri, Jun 22, 2012 at 2:02 PM, Deependra Ariyadewa <d...@wso2.com>wrote: >>>>> >>>>>> >>>>>> >>>>>> On Fri, Jun 22, 2012 at 1:45 PM, Amani Soysa <am...@wso2.com> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, Jun 22, 2012 at 1:24 PM, Tharindu Mathew >>>>>>> <thari...@wso2.com>wrote: >>>>>>> >>>>>>>> This will be useful for folks who want real time data access, but >>>>>>>> BAM is not designed to be real time. I don't want the Agent API to be >>>>>>>> specific to Cassandra, either. >>>>>>>> >>>>>>>> There should be a clean way to do this. How did you decide to do it >>>>>>>> this way? Was there a discussion? >>>>>>>> >>>>>>> Yes there was a discussion on this some time back on Architecture >>>>>>> -"RFC: Architecture for Stratos Log Processing" where we decided to >>>>>>> push >>>>>>> logs to bam event receiver through the publisher and view logs using >>>>>>> hector >>>>>>> api. >>>>>>> >>>>>> >>>>>> Initially we tried to use flume as the Stratos log collector/manager >>>>>> but we stop flume evaluation because BAM's capability to cover the same >>>>>> use >>>>>> case. >>>>>> >>>>>> There are several workarounds like create relevant keyspaces in the >>>>>> tenant creation or create extended event receiver only for logging. >>>>>> >>>>> If we do it in the tenant creation time their will be around 10 >>>>> keyspaces per each tenant (given that for each server, we create a >>>>> keyspace >>>>> as I explained earlier) So even a user doesn't use a particular server >>>>> their will be a keyspace for it. So if there are 1000 tenants there will >>>>> be >>>>> 10 000 keyspace (even if some keyspaces are not used at all) So I think >>>>> its >>>>> better to create keyspaces when ever logs are publishing to that >>>>> particular >>>>> keyspace. >>>>> >>>> 10 keryspaces per tenant?? Are you sure that's right... >>>> >>> Yes for each sever (maybe more than 10 :) ) >>> ie - data services,appserver,esb,mb,cep,bps,brs etc all the products we >>> offer for stratos deployment , because we store logs for each server in >>> different keyspace(if not we have to keep everything in a single keyspace >>> per tenant and it will be an expensive search when we filter the logs from >>> the server level because we give users server specific logs) >>> In our earlier syslog implementation we divided logs per each server for >>> fast result (as logs generates). Thats why its very important to not to >>> create keyspaces if users are not using a particular product. >>> >> >> I also agree with tharindu, that we should not make stream definition >> Cassandra specific, since this can also be used for JDBC data-store or >> InMemory data-store for CEP. >> >> Since this is an Cassandra specific issue and since we know the stream >> definition in advance, I believe its appropriate to have a Cassandra data >> store configuration which maps the stream definition to the appropriate >> Cassandra create key store query. Through this when the client request sent >> for defineEventStream the Cassandra data-store can first checks if it match >> one of the entry in the configuration, if so it runs the create key store >> query given in the configuration to create the key store with indexes, else >> it will create the key store in the normal way. >> Through this we can also restrict the number of unnecessary key store >> creation. >> >> Regards >> Suho >> >>> >>>>>> Thanks, >>>>>> >>>>>> Deependra. >>>>>> >>>>>>> >>>>>>>> On Fri, Jun 22, 2012 at 8:45 AM, Amani Soysa <am...@wso2.com>wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> Currently we are sending LogEvent data through bam data publisher >>>>>>>>> to bam event receiver using a custom log4j appender. And we retrieve >>>>>>>>> logs >>>>>>>>> using the hector API for the carbon log viewer. However, we need to >>>>>>>>> have >>>>>>>>> secondary indexes for several columns so that we can filter log >>>>>>>>> information >>>>>>>>> for a given column ( such as date, applicationName, priority,logger >>>>>>>>> etc) >>>>>>>>> when creating the data publisher (keyspace). From the current Bam Data >>>>>>>>> publisher implementation we cannot do secondary indexing all we can >>>>>>>>> do is >>>>>>>>> define the column name and the data type of that column, and reciver >>>>>>>>> creates the keyspaces for given columns with their data types. >>>>>>>>> >>>>>>>>> streamId = dataPublisher.defineEventStream("{" + " >>>>>>>>> 'name':'org.wso2.carbon.logging.$tenantId.$serverName'," >>>>>>>>> + " 'version':'1.0.0'," + " 'nickName': >>>>>>>>> 'Logs'," >>>>>>>>> + " 'description': 'Logging Event'," + " >>>>>>>>> 'metaData':[" >>>>>>>>> + " {'name':'clientType','type':'STRING'}" >>>>>>>>> + " ]," >>>>>>>>> + " 'payloadData':[" >>>>>>>>> + " {'name':'tenantID','type':' >>>>>>>>> STRING'}," >>>>>>>>> + " {'name':'serverName','type':' >>>>>>>>> STRING'}," >>>>>>>>> + " {'name':'appName','type':' >>>>>>>>> STRING'}," >>>>>>>>> + " {'name':'logTime','type':' >>>>>>>>> LONG'}," >>>>>>>>> + " {'name':'logger','type':' >>>>>>>>> STRING'}," >>>>>>>>> + " {'name':'priority','type':' >>>>>>>>> STRING'}," >>>>>>>>> + " {'name':'message','type':' >>>>>>>>> STRING'}," >>>>>>>>> + " {'name':'ip','type':'STRING'}, >>>>>>>>> " >>>>>>>>> + " {'name':'stacktrace','type':' >>>>>>>>> STRING'}," >>>>>>>>> + " {'name':'instance','type':' >>>>>>>>> STRING'}" >>>>>>>>> + " ]" >>>>>>>>> + "}"); >>>>>>>>> >>>>>>>>> Is it possible to have a cassandra specific event receiver (for >>>>>>>>> logging purposes) so that we can create key spaces with secondary >>>>>>>>> indexes?[ >>>>>>>>> 1 <https://wso2.org/jira/browse/CARBON-13468>] and it will create >>>>>>>>> keyspaces when ever logs are published . Or do we need to create >>>>>>>>> keyspaces >>>>>>>>> at tenant creation time?. For a given tenant we need to create several >>>>>>>>> keyspaces, depending on the server (and if possible for applications >>>>>>>>> as >>>>>>>>> well so we can have better performance when viewing logs). >>>>>>>>> ie - keyspace1 - org_wso2_logging_tenant1_application_server >>>>>>>>> (store AS specific logs) >>>>>>>>> keyspace2 - >>>>>>>>> org_wso2_logging_tenant1_data_services_server (store DSS specific >>>>>>>>> logs) >>>>>>>>> >>>>>>>>> Please note that we cannot use BAM analytics to view logs because >>>>>>>>> we need a real time log-viwer. >>>>>>>>> >>>>>>>>> [1] - https://wso2.org/jira/browse/CARBON-13468 >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Amani >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Regards, >>>>>>>> >>>>>>>> Tharindu >>>>>>>> >>>>>>>> blog: http://mackiemathew.com/ >>>>>>>> M: +94777759908 >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Deependra Ariyadewa >>>>>> WSO2, Inc. http://wso2.com/ http://wso2.org >>>>>> >>>>>> email d...@wso2.com; cell +94 71 403 5996 ; >>>>>> Blog http://risenfall.wordpress.com/ >>>>>> PGP info: KeyID: 'DC627E6F' >>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> Regards, >>>> >>>> Tharindu >>>> >>>> blog: http://mackiemathew.com/ >>>> M: +94777759908 >>>> >>>> >>> >> >> >> -- >> *S. Suhothayan >> * >> Software Engineer, >> Data Technologies Team, >> *WSO2, Inc. **http://wso2.com >> <http://wso2.com/>* >> *lean.enterprise.middleware.* >> >> *email: **s...@wso2.com* <s...@wso2.com>* cell: (+94) 779 756 757 >> blog: **http://suhothayan.blogspot.com/*<http://suhothayan.blogspot.com/> >> * >> twitter: **http://twitter.com/suhothayan* <http://twitter.com/suhothayan> >> * >> linked-in: **http://lk.linkedin.com/in/suhothayan* >> * >> * >> >> > > > -- > ============================ > Srinath Perera, Ph.D. > Senior Software Architect, WSO2 Inc. > Visiting Faculty, University of Moratuwa > Member, Apache Software Foundation > Research Scientist, Lanka Software Foundation > Blog: http://srinathsview.blogspot.com/ > Photos: http://www.flickr.com/photos/hemapani/ > Phone: 0772360902 >
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev