Receiver

Receiver

A Receiver is used to prepare Senlin engine to react to external alarms or events so that a specific Action can be initiated on a senlin cluster automatically. For example, when workload on a cluster climbs high, a receiver can change the size of a specified cluster.

Listing Receivers

The openstack cluster command line provides a sub-command receiver list that can be used to enumerate receiver objects known to the service. For example:

$ openstack cluster receiver list

Sorting the List

You can specify the sorting keys and sorting direction when list receivers, using the option --sort. The --sort option accepts a string of format key1[:dir1],key2[:dir2],key3[:dir3], where the keys used are receiver properties and the dirs can be one of asc and desc. When omitted, Senlin sorts a given key using asc as the default direction.

For example, the following command sorts the receivers using the name property in descending order:

$ openstack cluster receiver list --sort name:desc

When sorting the list of receivers, you can use one of type, name, action, cluster_id, created_at.

Paginating the List

In case you have a huge collection of receiver objects, you can limit the number of receivers returned from Senlin server, using the option --limit. For example:

$ openstack cluster receiver list --limit 1

Yet another option you can specify is the ID of a receiver object after which you want to see the list starts. In other words, you don’t want to see those receivers with IDs that is or come before the one you specify. You can use the option --marker for this purpose. For example:

$ openstack cluster receiver list \
    --limit 1 --marker 239d7212-6196-4a89-9446-44d28717d7de

Combining the --marker option and the --limit option enables you to do pagination on the results returned from the server.

Creating a Receiver

  1. Create a cluster named “test-cluster”, with its desired capacity set to 2, its minimum size set to 1 and its maximum size set to 5, e.g.
$ senlin cluster-create --profile $PROFILE_ID \
    --desired-capacity 2 --min-size 1 --max-size 5 \
    test-cluster
  1. Attach a ScalingPolicy to the cluster:
$ openstack cluster policy attach --policy $POLICY_ID test-cluster
  1. Create a receiver, use the option --cluster to specify “test-cluster” as the targeted cluster and use the option --action to specify “CLUSTER_SCALE_OUT” or “CLUSTER_SCALE_IN” as the action name. By default, the openstack cluster receiver create command line creates a receiver of type webhook, for example::

    $ openstack cluster receiver create \
        --cluster test-cluster \
        --action CLUSTER_SCALE_OUT \
        test-receiver
    

    Senlin service will return the receiver information with its channel ready to receive signals. For a webhook receiver, this means you can check the “alarm_url” field of the “channel” property. You can use this url to trigger the action you specified.

  2. Trigger the receiver by sending a POST request to its URL, for example:

curl -X POST <alarm_url>
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.