antikythera v0.2.0 API Reference
Modules
Definition of macro to make mapping of asset URLs from their file paths
Antikythera’s “async job” functionality allows gears to run their code in background
Utilities involving Code
module, used for metaprogramming
Definition of Antikythera.Conn
struct, which represents a client-server connection
Definition of Antikythera.Context
struct which represents a context for an execution of gear code
Helper module to bulk-import many controller-related modules
Macro definition for plug DSL
Calculate time schedules based on cron format strings
Easy to use data encryption/decryption utilities
Domain name format, originally defined in RFC1034
Utility functions to work with enumerables
Module to provide helpers to access environment variables defined by antikythera
Type module for error that describes what went wrong during a process execution
Template for gear application module
Helper module to define interface module for alerting
Helper module to define getter functions of gear configs
Helper module for gear’s custom error handler
Helper module to define each gear’s G2g
module that contains interface for gear-to-gear communication
Helper module to define each gear’s Logger
module
Helper module to define interface module to submit custom metrics data
Type module to represent gear names as atoms
A thin wrapper around Gettext.__using__/1
to forward error logs to each gear’s logger
HTTP headers as a map
HTTP client library
Just wrapping Httpc
without any modification.
Can be mocked with :meck.expect(Httpc.Mockable, :request, ...)
without interfering other Httpc action
Type for Antikythera.Httpc
’s request body
A struct to represent an HTTP response
An IMF-fixdate format of date/time. Used in HTTP headers. Only ‘GMT’ is allowed as timezone string
Functions to parse/compare IP addresses
A strict subset of ISO8601 format of timestamp
ISO8601 basic format
Utilities to manipulate Elixir AST
Utility functions to work with maps
Helper functions for making mix tasks in gears
Utility functions to work with nested maps
A type module to represent URI-encoded segment of URL path
Plug to restrict access to controller action by basic authentication
Plug to automatically load flash messages from session
Plug to restrict access to controller action only from within specified IP ranges
Plug to set a fixed value of cache-control
response header in order to disable client side caching
Plug to automatically load/store session information using a specific session store. Uses cookie store by default
A global (cluster-wide) process registry for implementing publisher-subscriber communication pattern
A global (cluster-wide) process registry to implement 1-to-1 process communications
Definition of Antikythera.Request
struct
Defines the antikythera routing DSL
Internal functions to implement request routing
Internal helper functions for macros in Antikythera.Router
, to generate/implement reverse routing functions
Definition of data structure to work with session
Implementation of Antikythera.Session.Store
that stores session info in cookie
Behaviour of session store
Definition of macro to precompile HAML templates
Helpers for tests that target async jobs
Helpers to be used in each gear’s test/test_helper.exs
Helper functions to construct Antikythera.Conn
object, to be used within tests
Helper functions to set gear configs from within gears’ test code
Helpers to work with gear logs within tests
Helper functions to be used within tests for GenServer
s
Helper functions to work with processes in test code
Websocket client for gear tests
Data structure to represent date and time in milli-seconds resolution
Format of versions of antikythera instances and gears
Functions to convert numeric values into human-readable strings
Behaviour module for websocket handlers
Simplified data type for websocket frames
Convenient XML parser module wrapping fast_xml
:gen_event
callback module that reports number of errors to AntikytheraCore.ErrorCountsAccumulator
process
Behaviour module for alert handlers
Alert handler implementation with email backend.
This is considered ‘default’ alert backend and used for testing of AntikytheraCore.Alert.Manager
Type module for map of configurations for a single alert handler
Type module for map of all alert configurations for a single OTP application (antikythera or a gear)
Backend handler for Logger
, which notifies AntikytheraCore.Alert.Manager
of error events
An event manager hosting multiple AntikytheraCore.Alert.Handler
s
A queue-like data structure, replicated using RaftedValue
, to store AntikytheraCore.AsyncJob
structs
ID of instance that is visible to gear developers
A GenServer
that periodically fetches current members of the cluster (all existing hostnames and their lifecycle states)
from underlying infrastructure
A GenServer
that tries to keep connections to other known nodes
Utility functions to handle secret key which is used to encrypt/decrypt config files
Periodically polls antikythera’s config file and apply changes to the cache (in ETS table)
Translator for Logger
, installed via config
A GenServer
to hold number of errors reported to each OTP application’s alert manager process (implemented by AntikytheraCore.Alert.Manager
)
A GenServer
(whose lifecycle is managed by PoolSup.Multi
) that executes gears’ controller actions
A broker that finds a pair of “a runnable job in job queue” and “an available AsyncJobRunner
process in worker pool”
A GenServer
to periodically send command to the leader process of the corresponding async job queue
A GenServer
that periodically fetches usage of executor pool and submits it
A GenServer
to count number of websocket connections that belong to the executor pool
Periodically polls changes in gear configs
Periodically polls gears’ executor pool settings and apply changes
Helpers to get/set context ID
A GenServer
to keep track of names of currently running gears
A much simplified version of Task
module defined in the elixir standard library
Defines (1) a behaviour to compute metrics results from raw metrics data and (2) some implementations of the behaviour. “Raw metrics data” is values reported from other components (e.g. response time values). “Metrics results” are values that summarize characteristics of “raw metrics data” (e.g. average response time)
Aggregate strategy that calculates the average value of incoming raw metrics data
Aggregate strategy that simply takes the last value within each time window
Aggregate strategy for request counts. This calculates the following values from HTTP status codes of responses within a time window
Aggregate strategy that computes the sum of all values generated within each time window
Aggregate strategy for time distribution (such as response times). This calculates the following values from time durations generated within a time window
A bin-like data structure to hold per-minute, per-epool metrics data
Data structure to represent metrics results computed from raw metrics data. Results are map of metrics data by minute-epool
A GenServer
which buffers metrics data and periodically flushes the aggregated results to stable storage
A GenServer that periodically removes extra nodes from mnesia schema
Generates a .appup file for the given application, start version, and upgrade version
A GenServer
which periodically removes already unused artifact files for running gears
Manages progress of startup procedure of antikythera
A GenServer
that periodically submit metrics about the ErlangVM
This is an implementation of EEx.Engine
that auto-escape dynamic parts within HAML templates
A GenServer
that caches tenant settings and apply changes to tenant executor pools
A GenServer that periodically checks the status of Node.self/0
A GenServer that keeps track of user pids of temporary directories
Functions to get information from “history” files
A GenServer
which periodically polls deployable versions of antikythera instance and gears
A GenServer
to serialize tasks to “upgrade of antikythera instance” and “installation or upgrade of gears”
Interface to mailer backend for Core/Gear alerts
Interface to work with storage of asset files
Interface to work with storage of log files
Interface to storage for metrics data. The storage is sliced per day
Mix Tasks
Generates a mix project for a new gear application
Prepares static assets for your gear
Deletes obsolete asset files in asset storage
Generates an appup file using the previous version located at the specified directory
Generates a new release tarball for antikythera instance using relx
Uploads assets to asset storage so that they can be delivered via CDN
Runs tests to ensure that antikythera’s upgrade doesn’t break backward-compatibility
Ensures only gear applications are specifed in gear_deps/0
Statically checks issues in gear’s source code
Touches source files that need to be recompiled