May 2022: Feature releases & highlights

O the month of May, the merry month of May,
So frolic, so gay, and so green, so green, so green!

Thomas Dekker (c. 1572–1632)

And green light for two new significant features. First, you can now orchestrate your applications across Intel/AMD and ARM platforms with the newly added Avassa multi-architecture support. Another helpful new feature is a flexible query API for the built-in streaming bus. You can now perform powerful searches of metrics and logs across sites.

We have also added a dimensioning guide to the documentation.

Multi-architecture support
Query API for the Distributed Event Streaming Bus
Site Dimensioning Guide

Multi-architecture support

The Avassa system is now available for Intel/AMD and ARM processors since we added support for ARMv8 platforms like Raspberry Pis. This architecture is becoming more and more prevalent in verticals like IoT and property management. Apart from specific support for ARMv8 this also implies that the Avassa platform manages the support for hybrid architectures on sites, including container image management.

First of all, supd, the Avassa agent that runs on the hosts on the sites, is now available both for Intel and ARM processors. So you can mix and match host platforms within a site and across sites.

Secondly, your application containers need to be correctly orchestrated for the corresponding host platforms. When supd first calls home to the Control Tower, it also reports the host architecture. Therefore, the Control Tower can build a union of which platforms are needed. When you build your containers, you make them according to which platforms you want to support. Control Tower will pick the right images from the registry when deploying the application to the sites.

Query API for the Distributed Event Streaming Bus

The built-in distributed event streaming bus, Volga, now supports a flexible query API. The query feature allows for efficient searching of Volga topics at multiple sites. A query can be composed of

  • which sites to run the query on
  • which topics to run the query towards
  • what to search for
  • how the output result should be presented

The example below searches the topic acme-edge-topic in all sites for the string “Login:”, (re-match is a regular expression match), since 1 hour ago.

{
  "follow": false,
  "since": "1h",
  "all-sites": true,
  "topics" :
  [
      {
          "topic-names" : ["acme-edge-topic"],
          "filter": {"re-match": "Login:"},
          "output": {"payload-only" : true}
      }
  ]
}

Let’s look at some examples

Let us show an application-specific example. Volga collects container output on stdout and stderr in a container topic. If you are an application developer, searching and streaming the container output topics is essential. The following query searches for errors in all containers called cowboy. The query uses a few advanced features, first, the query is not run at all sites, but rather the sites where our container is actually deployed. It also chooses the topics, using labels instead of the topic names. follow is true, which implies that it is constantly tailing the logs.

{
  "follow": true,
  "sites-from-application-deployment": "cowboy-dep",
  "topics" :
  [
      {
          "match-topic-labels" : "container-name = cowboy",
          "filter": {
              "re-opts" : ["caseless"],
              "re-match": "error|emerg|critical"
          },
          "output": {"payload-only" : true}
      }
  ]
}

The above examples illustrate the JSON payload over the REST API. The query API is well supported using the command line supctl as well. The example below shows a similar example where you search the topic acme-edge-topic for the string “Login” on sites site1 and site2. It also selects which fields to display in the resulting output.

$ supctl do volga query-topics --site-names site1 site2 --topics topic-names=acme-edge-topic re-match=Login payload-only=true --topics payload-only=true fields=site,user,request-parameters/sites

The query API is documented in the REST API reference section.

Site Dimensioning Guide

We have added dimensioning guidelines to the fundamentals section covering sites. It covers dimensioning guidelines both for the Avassa system and your application requirements.