COSMOS Design 212187
Contents
Change History
Name: | Date: | Revised Sections: |
---|---|---|
Sheldon Lee-Loy | 12/12/2007 |
|
Workload Estimation
Process | Sizing | Names of people doing the work |
---|---|---|
Design | ||
Code | ||
Test | ||
Documentation | ||
Build and infrastructure | ||
Code review, etc.* | ||
TOTAL |
'* - includes other committer work (e.g. check-in, contribution tracking)
Purpose
The COSMOS I7 End-to-End scenario provides a data collection component that collects and queries logging events. This data collection component utilizes the assembly components that were created in COSMOS I3 as outlined in enhancement 180318. The data collection component for logging event should conform to the new Data Collection framework as defined in enhancement 197868 and 192493
Requirement
A Data Manager is required to query logging information from a logging event repository. The Data Manager should provide the capabilities to allow clients to do the following:
- provide a list of datasets that is contained in the logging event repository. The datasets are ids that group a list of common base events. Typically this id is made up of the agent, host location, monitor and log file name that was collected. Note that this id is constructed from TPTP hierarchy model concepts
- provide a list of common base events associated with a dataset id
- provide a list of common base events grouped by severity
Note that the above operations provides the necessary function to render the current BIRT Log Report.
Design
The following diagram shows the overall architecture of the CBE Data Manager. A client will use the web service client class to communicate with the CBE data manager class over SOAP requests. The CBE data manager will interact with an underlying database that will contain the log event data. The data manager will provide the necessary query APIs to get a list log event data in the form of Common Base Events.
Implementation
The following class diagram shows the set of classes required to create the CBE data manager
The following defines the web service client interface (ICBEClient). This interface will provide the necessary APIs to get a list of datasets, get a list of cbes based on a dataset and get a list of datasets grouped by serverity
public interface ICBEClient { public Collection<String> getDatasets() throws Exception{ } public Collection<CommonBaseEvent> getAllCBE(String dataset) throws Exception { } public Collection<CBESeverityCount> getCBECountBySeverity(String dataset) throws Exception { } }
The implementation of the CBEDataManager will contain the SQL statements to query the CBE database. The schema for the database can be found under data-collection//org.eclipse.cosmos.dc.sample.components/src/org/eclipse/cosmos/dc/sample/components/sink/cbe/CreateDatabaseAndTablesCloudscape_cosmos.sql
The implementation of the CBEClient will contain the soap request that will communicate with the CBEDataManager service.
Task Breakdown
The following section includes the tasks required to complete this enhancement.
- Create Web Service Client
- Create CBE Data Manager - create sql methods to work with existing CBE COSMOS schema
- Create JUnit tests for Data Manager and Web Service Client
Testing
This ER along with 212189 define DataManagers for which there are client interfaces that spell out the APIs to these datamanagers.
For each datamanagers, there is an interface that defines some methods that can be used to get data from the datamanagers,
The functionality of the Datamanagers is determined to be ability to call the methods on these interfaces.
Each method in each of the interfaces has a JUnit test associated with it.
The interface for this datamanager is called ICBEClient and it has 3 methods Collection<String> getDataset() Collection<CommonBaseEvent> getAllCBE(String dataset) Collection<CBESeverityCount> getCBECountBySeverity(String dataset)
The corresponding JUnit test cases for each of these methods are JUnit_getDatasets JUnit_getAllCBEs JUnit_getCBECountBySeverity
These test cases are pass/fail and do not require interpretation of displayed results.
In order for these work, the CBE (logging) datamanger needs to up and there is a configuration parameter called CBEData.dir that needs setting in the config.properties file of the datamanager.
If you are running the Cosmos Demo i8 (cosmos-demo) and have run configDemo.bat, this parameter is set automatically for you...otherwise read on.
The config.properties file can be found in org.eclipse.cosmos.dc.logging.datamgr_1.0.0/META-INF/config.properties
and should have the line CBEData.dir=<your path>
where <your path> is the absolute path on the filesystem pointing to org.eclipse.cosmos.dc.logging.datamgr_1.0.0/META-INF/logs
Notice the path uses forward slash
To know you are pointing the right directory, ensure that the files access_log.cbe.xml and windows_app_log.cbe.xml are in it.
Enhancement Owner
The owner of this ER is assigned to John Todd. Hubert and Joel will provide technical assistance.
The following was a note sent out to the interested parties that instigated the ownership change of this ER.
I want to close on the following ERs for the logging and statistical data managers in terms of the assignments of these ERs. Currently these ERs are blocking the data visualization work for the reports and ui components. I want to know if these ERs can be contained by the data collection group. If there are concerns in this matter JT has opted to own these enhancements with the understanding that he will get help from Hubert or Joel since they were the original developers for the Statitical and Logging data components. I created a design document for each ERs. http://wiki.eclipse.org/COSMOS_Design_212189 http://wiki.eclipse.org/COSMOS_Design_212187 Don and Joel let me know your thoughts. I talked with Hubert and he is willing to help JT in this regard.