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: topology_definitiontopologyDescription
 AttributeTypeDescription
tagenametopologyStringtopology desc name
fieldsmainClassexeClassStringapplication main topology entry class
 typeStringtopology type: build-in topology or main-class topology
 configStringtopology config
DSL or CLASS
  descriptionStringdescription on this topology
 versionStringtopology version

...

Topology Execution Service 

  • Service name: TopologyExecutionService
  • Entity: TopologyExecutionEntity
  • Table name: eagle_metadata
  • Prefix: topology_executiontopologyExecution
  • Description: define the relation between an application and an topology, and maintain the execution status as well
idfields
 AttributeTypeDescription
tagssiteStringtopology site
 applicationStringapplication 
 nametopologyStringtopology desc name  
fieldsfullNameStringglobal unique topology idexecution name: eagle_${site}_${application}_${topology}_${random_hashcode}
 urlStringapplication topology tracking url
 deploydescriptionStringdeploy environment topology running status description
 statusStringapplication running status {INITIALIZEDNEW, STARTING, STOPPING, STARTED, STOPPING, STOPPED}
 modeStringtopology running mode: cluster or local
 environmentStringtopology execution environment, e.g., storm
 lastModifiedDatelastUpdateTimelonglast status update time

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

Topology Operation Service

  • Service name: TopologyOperationService
  • Entity: TopologyOperationEntity
  • Table name: eagle_metadata
  • Prefix: topologyOperation
 AttributeTypeDescription
tagsoperationString{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



 

...