ExternalIntegration

Usage

use ExternalIntegration;

or

import ExternalIntegration;
const eiLogger = new Logger(logLevel, logChannel)
const CURLOPT_VERBOSE: CURLoption
  • libcurl C constants required to configure the Curl core

  • of HttpChannel objects.

const CURLOPT_USERNAME: CURLoption
const CURLOPT_PASSWORD: CURLoption
const CURLOPT_USE_SSL: CURLoption
const CURLOPT_SSLCERT: CURLoption
const CURLOPT_SSLKEY: CURLoption
const CURLOPT_KEYPASSWD: CURLoption
const CURLOPT_SSLCERTTYPE: CURLoption
const CURLOPT_CAPATH: CURLoption
const CURLOPT_CAINFO: CURLoption
const CURLOPT_URL: CURLoption
const CURLOPT_HTTPHEADER: CURLoption
const CURLOPT_POSTFIELDS: CURLoption
const CURLOPT_CUSTOMREQUEST: CURLoption
const CURLOPT_FAILONERROR: CURLoption
const CURLINFO_RESPONSE_CODE: CURLoption
const CURLOPT_SSL_VERIFYPEER: CURLoption
enum SystemType { KUBERNETES, REDIS, CONSUL, NONE }
  • Enum specifies the type of external system Arkouda will integrate with.

enum constant KUBERNETES
enum constant REDIS
enum constant CONSUL
enum constant NONE
enum ChannelType { STDOUT, FILE, HTTP }
  • Enum describing the type of channel used to write to an

  • external system.

enum constant STDOUT
enum constant FILE
enum constant HTTP
enum ServiceEndpoint { ARKOUDA_CLIENT, METRICS }
  • Enum specifies if the service endpoint is the Arkouda client or metrics

  • socket

enum constant ARKOUDA_CLIENT
enum constant METRICS
enum HttpRequestType { POST, PUT, PATCH, DELETE }
  • Enum specifies the request type used to write to an external system

  • via HTTP.

enum constant POST
enum constant PUT
enum constant PATCH
enum constant DELETE
enum HttpRequestFormat { TEXT, JSON, MULTIPART }
  • Enum specifies the request format used to write to an external system

  • via HTTP.

enum constant TEXT
enum constant JSON
enum constant MULTIPART
proc getConnectHostIp() throws
  • Retrieves the host ip address of the locale 0 arkouda_server process, which is

  • useful for registering Arkouda with cloud environments such as Kubernetes.

class Channel
  • Base class defining the Arkouda Channel interface consisting of a

  • write method that writes a payload to an external system.

proc write(payload: string) throws
class FileChannel: Channel
  • The FileChannel class writes a payload out to a file, either by appending

  • or overwriting an existing file or creating and writing to a new file.

var path: string
var append: bool
proc init(path: string, append: bool)
override proc write(payload: string) throws
class HttpChannel: Channel
  • The HttpChannel class writes a payload out to an HTTP endpoint

  • in a configurable format via a configurable request type.

var url: string
var requestType: HttpRequestType
var requestFormat: HttpRequestFormat
proc init(url: string, requestType: HttpRequestType, requestFormat: HttpRequestFormat)
proc configureChannel(channel) throws
proc generateHeader(channel) throws
override proc write(payload: string) throws
  • Writes the payload out to an HTTP/S endpoint in a format specified

  • by the requestFormat instance attribute via the request type

  • specified in the requestType instance attribute.

class HttpsChannel: HttpChannel
  • The HttpChannel class writes a payload out to an HTTPS endpoint

  • in a configurable format via a configurable request type.

var caCert: string
var token: string
proc init(url: string, requestType: HttpRequestType, requestFormat: HttpRequestFormat, caCert: string, token: string)
override proc configureChannel(channel) throws
  • Overridden proc adds token TLS configuration

override proc generateHeader(channel) throws
  • Overridden proc adds TLS token to the HTTPS header

proc registerWithKubernetes(appName: string, serviceName: string, servicePort: int, targetServicePort: int) throws
  • Registers Arkouda with Kubernetes by creating a Kubernetes Service–and an Endpoints

  • if Arkouda is deployed outside of Kubernetes–to enable service discovery of Arkouda

  • from applications deployed within Kubernetes.

proc deregisterFromKubernetes(serviceName: string) throws
  • Removes the Kubernetes Service and, if applicable, Endpoints that compose the

  • service endpoint that enables access to Arkouda deployed within or outside of

  • Kubernetes from applications deployed within Kubernetes

proc getKubernetesRegistrationParameters(serviceEndpoint: ServiceEndpoint) throws
proc getKubernetesDeregisterParameters(serviceEndpoint: ServiceEndpoint) throws
proc registerWithExternalSystem(appName: string, endpoint: ServiceEndpoint) throws
  • Registers Arkouda with an external system on startup, defaulting to none.

proc deregisterFromExternalSystem(endpoint: ServiceEndpoint) throws
  • Deregisters Arkouda from an external system upon receipt of shutdown command