Application Portal - csap-platform/csap-core GitHub Wiki

The application portal is the core dashboard used when accessing the application for a selected lifecycle. It is provided by the agent service -Dspring.profiles.active=admin. The key components:

Note: All diagrams can be enlarged by clicking


Landing Page


Screenshot Description

Application landing page

  • customized per application lifecycle
  • shows summary state of all deployed services along with any service alerts
  • selecting a service shows all instances - and provides quick launch to view logs, show host dashboard and more

Alert Details

  • a summary description of the alert, by both host and service instance
  • host names are click able to launch the host dashboard

Application Lauchers

  • Any service or url can be added to the landing page for convenient access by engineering teams

RealTime Meters Summary

  • each application lifecycle can have a configurable set of metrics displayed
  • based on the meter definition it can be the total of all service instances, or the average, ...
  • value is the most recently collected (typically 30 seconds)

RealTime Meters Details

  • Clicking on the summary meter will launch to the meters details page.
  • Enables to view/sort the last collected value of all the services

Performance Trends

  • Teams can select key performance trends to track both customers served and resource cost
  • Click on a trend launches CSAP Analytics Portal

Service Deployment


Screenshot Description

Overview

  • The service portal enables a wide range of operations; including deployment, performance, monitoring
  • Capabilities typically involve selecting 1 or more service instances, and clicking on desired Operation

Deployment

  • Services can be deployed from source code (git, svn) or directly from a maven repository.
  • For non-java: Use of maven assembly.xml enables any technology to be deployed
    • CSAP packages are typically a simple zip with technology specific configuration files and CSAP consoleApi.sh.
    • During deployment - consoleApi.sh deployFunction() does a wget of the binary.zip
    • enables all console operations for ANY technology

Deployment Backlog

  • the deployment backlog view provides access to view/pause/delete deployments. It is particularly useful during host installation,

OS Performance and Alerts

  • resources consumed by selected service instance(s)
  • green / yellow / red status based on service defined alert levels

Application performance

  • service specific performance. Typically reflects business or functional behavior
    • for CSAP Agent - a key function is to rotate log files
  • refer to the Performance for more information

Java performance

  • java provides extensive metrics out of the box: Heap usage, open files, threads, etc.
  • if servlet apis are used, standard metrics such as active users, session counts, http request counts are also available

Performance Graphs

  • in context graphs are available directly on the service portal
  • the CSAP Host Portal provides extensive real time access to all collected data
  • extensive visualizations and analytics are available via the CSAP Analytics Portal

Kubernetes


All views can be navigated to produce kubectl describe and log output where applicable

Screenshot Description

Node View

  • Provides actual consumption (collected every 30s)
  • Includes kubernetes resource requests used to managed workload distribution
  • any alerts or conditions are highlighted

volumes

  • Kubernetes PVC listing
  • cross launch to file manager to browse folders

pod namespaces

  • shows all namespaces with navigatable pod summary view
  • cross launch to file manager to browse folders

events

  • navigatable event listing
  • filter based on severity, etc.
  • view details

kubernetes metrics server view

  • show resource consumption (cores, memory) as collected by metrics server
  • filter based on container name, podname,...
  • view details

click diagrams to enlarge to enlarge


Service Logs


Screenshot Description

Log Viewer

  • logs are tailed in real time, with default highlighting of log levels, and long lines wrapped
  • text can be selected - and then search performed across all instances of the service

Log Search

  • default is to search text selected in log viewer, can be modified as needed.
  • selectable hosts - using individual or by service cluster, or all
  • all data is stored on host and searched using OS commands
  • searches are performed in parallel, using Environment Definition to determine the concurrency

Search Results

  • results are highly customizable, based on configuration in search form
  • option to launch host dashboard

Log Rotation Policy

  • in addition to default rotation policy, each service optionally configure its respective policy
  • refer to Service Definition

click diagrams to enlarge to enlarge


Application Editor


All aspects of an application are store in the Application Definition - a set of files typically stored in git and referred to as the Application Model. While the files can be edited directly - this practice is discouraged as there are many semantic and syntactic validations performed when using the editor.

Editor Perspectives: The application editor provides different perspectives to enable workflow based changes.

Creating an Environment

CSAP encapsulates project life cycles within the application definition. As shown on the CSAP Management Dashboards architecture, the key considerations when setting up a life cycle:

  • life cycles cannot share infrastructure resources.

    • Consider kubernetes namespaces to optimize resources while maintaining operational isolation.
  • each life cycle has its own Application portal.

    • It is provided by the csap admin service.
  • service definitions are shared across all life cycles.

    • While the service definitions are shared, each life cycle can customize behaviour (life cycle configuration maps, service definition environment over rides, etc.)

Steps:

  1. Select an existing life cycle that is closest to the desired new one.
  2. Click copy
  3. Update ALL host names on all clusters
  4. Click edit settings → select system tab. Update the loadbalance url to be the host of the management cluster updated in step 3
  5. Commit changes to your repository.
  6. Follow the Installation steps to install the hosts defined in your new life cycle.

Environments can be further customized as desired: landing page trends and real time meters, additional services, etc.

Screenshot Description

Summary Page

  • an overview of the application, including source location, service count, etc.
  • reload option enables the entire definition to be reloaded from source control on all hosts

Tree Editor

  • provides a tree navigation view of the selected release package (default is Application.json)
  • three editing modes:
    • tree - click on any value to modify
    • form - click on any launch icon to access the form view
    • json - any open element can be viewed in source mode to modify the selected content
  • changes can be validated, applied, or checked in

Service Editor Form

  • modify all aspects of service (source location, maven location, alert levels, performance, ....)
  • the default tabs provides direct access to the CSAP specification to edit direct; the remaining tabs provide form based access with hints
  • refer to Service Definition

Batch Service Attribute Editor

  • some attributes are more conveniently modified in batch. eg. a new application release, JVM parameters, etc.
  • UI enables teams to quickly view/compare/modify specific attributes across all services

click diagrams to enlarge to enlarge


Additional Features


Screenshot Description

CSAP Service Live Integration

  • available as part of the csap-starter.jar, CsapMicroMeter provides fine grained health metrics on demand at user defined intervals
  • application console collects defined set of metrics from every service instance (default 30s intervals)

APIs

  • extensive APIs for quering the model, the runtime state, and the management agent
  • APIs are auto-generated using the @CsapDoc annotation found in csap-starter

Property Encryption

  • confidential service configuration data - such as passwords - should be encoded.
  • CSAP property encoder is available in the main tools menu, as well as integrated with the CSAP File Manager
⚠️ **GitHub.com Fallback** ⚠️