Connection with Archiver Appliance¶
The Archiver Appliance is an EPICS logging system developed in a collaboration of SLAC, BNL, and MSU for collecting and storing measurements from various control devices. Data retrieval is based on the client-server interface using HTTP requests. Large-scale accelerators and experimental facilities may maintain multiple archivers. Within the databroker application, each archiver is represented by an ArchiverEventSource that needs to be configured and registred with the Broker. The following sections highlight two major topics: ArchiverEventSource configuration and data retrival based on the databroker interface.
Configuration¶
ArchiverEventSources is configured via Broker
by extending the
databroker configuration file with a list of archiver entries. For example, the
following cxs_with_archiver.yml
file illustrates the configuration of two
ArchiverEventSources, arch_csx
and arch_acc
:
event_sources:
- config:
name: 'arch_acc'
url: 'http://arcapp01.cs.nsls2.local:17668'
timezone: 'US/Eastern'
pvs:
pv2: 'UT:SB1-Cu:1{}T:Prmry-I'
module: 'databroker.eventsource.archiver'
class: 'ArchiverEventSource'
- config:
name: 'arch_csx'
url: 'http://xf23id-ca.cs.nsls2.local:17668'
timezone: 'US/Eastern'
module: 'databroker.eventsource.archiver'
class: 'ArchiverEventSource'
According to this file, each ArchiverEventSource is defined with four configuration key-value pairs :
name: user-defined name of the Archiver Appliance archiver
url: address of the Archiver Appliance Retrieval server
timezone: time zone
pvs: dictionary mapping user-defined names to EPICS PVs
A pvs dictionary can be extended via Broker
as:
db = Broker.named('csx_with_archivers')
arch_csx = db.event_sources_by_name['arch_csx']
arch_csx.pvs.update({'pv1': 'XF:23ID-ID{BPM}Val:PosXS-I'})
Data Retrieval¶
After integrating ArchiverEventSources with Broker
, PV data can be
retrieved with the standard Header.table()
method:
# select header
hdr = db[69209]
stream_name = 'pv1'
df = hdr.table(stream_name=stream_name)