Getting InfluxDB connection information#
Repertoire supports obtaining connection information for InfluxDB databases. Unlike other service discovery calls, the connection information includes credentials and therefore this API requires authentication. Also unlike other service discovery calls, the InfluxDB database may not be in the same Phalanx environment.
Listing available databases#
To get a list of InfluxDB databases for which connection information is available, call DiscoveryClient.influxdb_databases
:
from rubin.repertoire import DiscoveryClient
discovery = DiscoveryClient()
databases = await discovery.influxdb_databases()
The resulting names are short, human-readable names that can be passed as the database
parameter to DiscoveryClient.get_influxdb_connection_info
as described below.
Getting connection information#
Getting the connection information for a specific database requires authentication, since the returned information includes the username and password.
First, obtain a Gafaelfawr token. Inside a service, normally this should be a delegated token received as part of a request and used to act on behalf of the user. See the Gafaelfawr documentation on delegated tokens for more information. In other environments, this may be a user token created through the token UI, or a notebook token created by Nublado.
Then, call DiscoveryClient.get_influxdb_connection_info
with the name of the database (possibly obtained via DiscoveryClient.influxdb_databases
) and that token:
from rubin.repertoire import DiscoveryClient
discovery = DiscoveryClient()
token = "..." # obtained from somewhere else
info = await discovery.get_influxdb_connection_info("some_database", token)
The resulting object has the following fields:
url
The URL of the InfluxDB service for this database. This is a
pydantic.HttpUrl
without authentication information. Use thehost
,port
, andpath
attributes of the URL if you need those components separately (for the constructor ofaioinflux.client.InfluxDBClient
, for example).database
The name of the InfluxDB database to use for queries.
username
Username with which to authenticate.
password
Password with which to authenticate.
schema_registry
The URL (as a string) of the associated Confluent Kafka Schema Registry that contains schema information for this database.