Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Status

Status
titleIMPROVING

Principle

  • Minimize user operations for managing and monitoring topologies
  • REST Service centralized metadata management
  • Consistent UI experience

...

  1. Make sure consistent semantics between the term application (user space) and topology (physical space only)
  2. Topology should read configuration from SiteApplicationEntity#config instead of configuration fileconfiguration can be edited on UI
  3. Use REST Service as only entry to manage application (START/STOP/HEALTH CHECKING) and ApplicationManager to schedule the task execution and update the execution information 
  4. Eagle UI should support to manage/monitor the application on site/application page
  5. Single site/application may have more than one topologies (for example hdfsAuditLogMonitoring and userProfileMonitoring should have topologies running separately)

...

To have a better user experience with EAGLE ui, we could provide an interface to manage a certain topology via the ui page, such as submit a topology

Gliffy Diagram
nameApplicationTopologyArch
 

Gliffy Diagram
nametopologyManagetopologyManagerArch

Schema

...

Topology Description Service

  • Service name: TopologyDescServiceTopologyDescriptionService
  • Entity: TopologyDescriptionEntity
  • Table name: eagle_metadata
  • Prefix: topologyDescription
 AttributeTypeDescription
tagetopologyStringtopology name
fieldsexeClassStringtopology entry class
 typeStringtopology type: DSL or CLASS
 descriptionStringdescription on this topology
 versionStringtopology version

Topology Execution Service 

  • Service name: TopologyExecutionService
  • Entity: TopologyExecutionEntity
  • Table name: eagle_metadata
  • Prefix: topologyExecution
  • Description: define the relation between an application and an topology, and maintain the execution status as well_definition
namefieldsmainClass main classtype type: build-in topology or main-class topology
 AttributeTypeDescription
tagssiteStringtopology site
 applicationString 
 topologyString 
fieldsfullNameStringapplication name = topology execution name: eagle_${site}_${application}_${topology}
 urlStringtopology tracking url
 descriptionStringtopology namerunning status description
 statusStringapplication running status {NEW, STARTING, STOPPING, STARTED, STOPPED}
 modeStringtopology running mode: cluster or local
 configenvironmentStringtopology configexecution environment, e.g., storm
 descriptionlastModifiedDateStringdescription on this topology

...

longlast status update time

Topology Operation Service

  • Service name: ApplicationExecutionServiceTopologyOperationService
  • Entity: TopologyOperationEntity
  • Table name: eagle_metadata
  • Prefix: application_executiontopologyOperation
application
 AttributeTypeDescription
tagsoperationStringapplication name = ${site}_${application}
fieldsstatusUrlStringapplication tracking url
 deployClusterStringcluster name
 localStatusStringapplication running status {INITIALIZED, STARTING, STARTED, STOPPING, STOPPED}

Use cases

...

  1. create a topology definition entity

...

  1. click START button
  2. check the topology's current status on the nimbus host
  3. a new thread is created to execute the submitting topology task
  4. update status
{START, STOP, STATUS}
 siteString 
 applicationString 
 operationIDString 
 topologyStringtopology name: ${topology}
fieldsstatusString{INITIALIZED, PENDING, FAILED, SUCCESS}
 messageStringexception message
 lastModifiedDatelonglast status update time

Customized Restful Apis

HTTP MethodURLPayloadDescription
POST/app/operationTopologyOperationEntitycreate an topology operation
DELETE/app/topology/{topology} delete a topology description



 

...