Skip to content

Applications

They are the channels components.

Punchlines are the most essential punch applications. However, to implement a complete solution, you need (of course) more applications and services.

For example:

  • to take care of data housekeeping to continuously remove the too old data
  • an alerting service
  • wrapping your own additional applicative service.
  • Etc..

In short, you need more than punchlines. We in the punch team tired not to re-invent the wheel, and we simply call all these applications.

Applications are all managed by either Shiva or Storm cluster. Shiva supports all kind of applications (Storm-like, Spark, custom command-line...).

Punch off-the-shelves Applications

The punch ships in with several ready-to-use applications. You simply use these by configuration, without requiring additional deployment on shiva nodes.

  • 'Tenant channels' and 'platform health' monitoring applications
  • Housekeeping applications in charge of cleaning the expired elasticsearch or archive data.
  • third party COTS fully integrated, such as logstash or Elastalert

Packaging your applications

If you embed the punch in OEM mode, and must package additional applications of yours on top of it, the punch application scheduler provides you with a simple yet robust distributed application scheduler.

You will have to make sure all the dependencies of your application (binaries, linux packages...) are distributed on the Shiva node in charge of running your application.

If your application is simple as a Linux shell script using standard linux commands (like retrieving data from a remote FTP server and copying it to some local folder as an input to another application), then you will only provide your script to the Punch, and it will take care of sending it to the runner node.

Note

The more typical usage of the punch consists in delivering only your functions, as part of punchlines nodes. Bringing together applications is handy but not the core punch feature.

Examples

Here is an example of a channel configuration file with one of the punch application.

{
  version: "6.0"
  start_by_tenant: true
  stop_by_tenant: true
  applications: [
    {
        name: elasticsearch-housekeeping
        runtime: shiva
        cluster: local
        command: elasticsearch-housekeeping
        args: [ "--tenant-configuration-path", "elasticsearch-housekeeping.json" ]
        quartzcron_schedule: 0 0 * ? * * *
       }

    ]
}