diff options
| author | Thomas Perrot <thomas.perrot@bootlin.com> | 2021-01-11 16:52:49 +0100 |
|---|---|---|
| committer | Khem Raj <raj.khem@gmail.com> | 2021-01-11 09:51:22 -0800 |
| commit | e413948e1c2c69661f79f19440597828a938c77f (patch) | |
| tree | 1919dfc032c11459af16ba8efe0cdbdddf7d03d4 | |
| parent | 67631e5ac77347dce5cb9cdceb29fcf0b8bd325b (diff) | |
| download | meta-openembedded-e413948e1c2c69661f79f19440597828a938c77f.tar.gz | |
influxdb: add new recipe
InfluxDB is a time series database designed to handle high write and query
loads.
Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
| -rwxr-xr-x | meta-oe/recipes-dbs/influxdb/influxdb/influxdb | 235 | ||||
| -rw-r--r-- | meta-oe/recipes-dbs/influxdb/influxdb/influxdb.conf | 586 | ||||
| -rw-r--r-- | meta-oe/recipes-dbs/influxdb/influxdb_1.7.10.bb | 63 |
3 files changed, 884 insertions, 0 deletions
diff --git a/meta-oe/recipes-dbs/influxdb/influxdb/influxdb b/meta-oe/recipes-dbs/influxdb/influxdb/influxdb new file mode 100755 index 0000000000..ffb29c3ae6 --- /dev/null +++ b/meta-oe/recipes-dbs/influxdb/influxdb/influxdb | |||
| @@ -0,0 +1,235 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | ### BEGIN INIT INFO | ||
| 3 | # Provides: influxd | ||
| 4 | # Required-Start: $all | ||
| 5 | # Required-Stop: $remote_fs $syslog | ||
| 6 | # Default-Start: 2 3 4 5 | ||
| 7 | # Default-Stop: 0 1 6 | ||
| 8 | # Short-Description: Start the InfluxDB process | ||
| 9 | ### END INIT INFO | ||
| 10 | set -x | ||
| 11 | # If you modify this, please make sure to also edit influxdb.service | ||
| 12 | |||
| 13 | # Command-line options that can be set in /etc/default/influxdb. These will override | ||
| 14 | # any config file values. | ||
| 15 | DEFAULT=/etc/default/influxdb | ||
| 16 | |||
| 17 | # Daemon options | ||
| 18 | INFLUXD_OPTS= | ||
| 19 | |||
| 20 | # Process name ( For display ) | ||
| 21 | NAME=influxdb | ||
| 22 | |||
| 23 | # User and group | ||
| 24 | USER=influxdb | ||
| 25 | GROUP=influxdb | ||
| 26 | |||
| 27 | # Check for sudo or root privileges before continuing | ||
| 28 | if [ "$UID" != "0" ]; then | ||
| 29 | echo "You must be root to run this script" | ||
| 30 | exit 1 | ||
| 31 | fi | ||
| 32 | |||
| 33 | # Daemon name, where is the actual executable If the daemon is not | ||
| 34 | # there, then exit. | ||
| 35 | DAEMON=/usr/bin/influxd | ||
| 36 | if [ ! -x $DAEMON ]; then | ||
| 37 | echo "Executable $DAEMON does not exist!" | ||
| 38 | exit 5 | ||
| 39 | fi | ||
| 40 | |||
| 41 | # Configuration file | ||
| 42 | CONFIG=/etc/influxdb/influxdb.conf | ||
| 43 | |||
| 44 | # PID file for the daemon | ||
| 45 | PIDFILE=/var/run/influxdb/influxd.pid | ||
| 46 | PIDDIR=`dirname $PIDFILE` | ||
| 47 | if [ ! -d "$PIDDIR" ]; then | ||
| 48 | mkdir -p $PIDDIR | ||
| 49 | chown $USER:$GROUP $PIDDIR | ||
| 50 | fi | ||
| 51 | |||
| 52 | # Max open files | ||
| 53 | OPEN_FILE_LIMIT=65536 | ||
| 54 | |||
| 55 | if [ -r /lib/lsb/init-functions ]; then | ||
| 56 | source /lib/lsb/init-functions | ||
| 57 | fi | ||
| 58 | |||
| 59 | # Logging | ||
| 60 | if [ -z "$STDOUT" ]; then | ||
| 61 | STDOUT=/var/log/influxdb/influxd.log | ||
| 62 | fi | ||
| 63 | |||
| 64 | if [ ! -f "$STDOUT" ]; then | ||
| 65 | mkdir -p $(dirname $STDOUT) | ||
| 66 | fi | ||
| 67 | |||
| 68 | if [ -z "$STDERR" ]; then | ||
| 69 | STDERR=/var/log/influxdb/influxd.log | ||
| 70 | fi | ||
| 71 | |||
| 72 | if [ ! -f "$STDERR" ]; then | ||
| 73 | mkdir -p $(dirname $STDERR) | ||
| 74 | fi | ||
| 75 | |||
| 76 | # Override init script variables with DEFAULT values | ||
| 77 | if [ -r $DEFAULT ]; then | ||
| 78 | source $DEFAULT | ||
| 79 | fi | ||
| 80 | |||
| 81 | function log_failure_msg() { | ||
| 82 | echo "$@" "[ FAILED ]" | ||
| 83 | } | ||
| 84 | |||
| 85 | function log_success_msg() { | ||
| 86 | echo "$@" "[ OK ]" | ||
| 87 | } | ||
| 88 | |||
| 89 | function start() { | ||
| 90 | # Check if config file exist | ||
| 91 | if [ ! -r $CONFIG ]; then | ||
| 92 | log_failure_msg "config file $CONFIG doesn't exist (or you don't have permission to view)" | ||
| 93 | exit 4 | ||
| 94 | fi | ||
| 95 | |||
| 96 | # Check that the PID file exists, and check the actual status of process | ||
| 97 | if [ -f $PIDFILE ]; then | ||
| 98 | PID="$(cat $PIDFILE)" | ||
| 99 | if kill -0 "$PID" &>/dev/null; then | ||
| 100 | # Process is already up | ||
| 101 | log_success_msg "$NAME process is already running" | ||
| 102 | return 0 | ||
| 103 | fi | ||
| 104 | else | ||
| 105 | su -s /bin/sh -c "touch $PIDFILE" $USER &>/dev/null | ||
| 106 | if [ $? -ne 0 ]; then | ||
| 107 | log_failure_msg "$PIDFILE not writable, check permissions" | ||
| 108 | exit 5 | ||
| 109 | fi | ||
| 110 | fi | ||
| 111 | |||
| 112 | # Bump the file limits, before launching the daemon. These will | ||
| 113 | # carry over to launched processes. | ||
| 114 | ulimit -n $OPEN_FILE_LIMIT | ||
| 115 | if [ $? -ne 0 ]; then | ||
| 116 | log_failure_msg "Unable to set ulimit to $OPEN_FILE_LIMIT" | ||
| 117 | exit 1 | ||
| 118 | fi | ||
| 119 | |||
| 120 | # Launch process | ||
| 121 | echo "Starting $NAME..." | ||
| 122 | if command -v start-stop-daemon &>/dev/null; then | ||
| 123 | start-stop-daemon \ | ||
| 124 | --background \ | ||
| 125 | --chuid $USER:$GROUP \ | ||
| 126 | --start \ | ||
| 127 | --quiet \ | ||
| 128 | --pidfile $PIDFILE \ | ||
| 129 | --exec $DAEMON \ | ||
| 130 | -- \ | ||
| 131 | -config $CONFIG \ | ||
| 132 | $INFLUXD_OPTS >>$STDOUT 2>>$STDERR | ||
| 133 | else | ||
| 134 | local CMD="$DAEMON -config $CONFIG $INFLUXD_OPTS >>$STDOUT 2>>$STDERR &" | ||
| 135 | su -s /bin/sh -c "$CMD" $USER | ||
| 136 | fi | ||
| 137 | |||
| 138 | # Sleep to verify process is still up | ||
| 139 | sleep 1 | ||
| 140 | echo $(pidof influxd) > $PIDFILE | ||
| 141 | if [ -f $PIDFILE ]; then | ||
| 142 | # PIDFILE exists | ||
| 143 | PID="$(cat $PIDFILE)" | ||
| 144 | if kill -0 "$PID" &>/dev/null; then | ||
| 145 | # PID up, service running | ||
| 146 | log_success_msg "$NAME process was started" | ||
| 147 | return 0 | ||
| 148 | fi | ||
| 149 | fi | ||
| 150 | log_failure_msg "$NAME process was unable to start" | ||
| 151 | exit 1 | ||
| 152 | } | ||
| 153 | |||
| 154 | function stop() { | ||
| 155 | # Stop the daemon. | ||
| 156 | if [ -f $PIDFILE ]; then | ||
| 157 | local PID="$(cat $PIDFILE)" | ||
| 158 | if kill -0 $PID &>/dev/null; then | ||
| 159 | echo "Stopping $NAME..." | ||
| 160 | # Process still up, send SIGTERM and remove PIDFILE | ||
| 161 | kill -s TERM $PID &>/dev/null && rm -f "$PIDFILE" &>/dev/null | ||
| 162 | n=0 | ||
| 163 | while true; do | ||
| 164 | # Enter loop to ensure process is stopped | ||
| 165 | kill -0 $PID &>/dev/null | ||
| 166 | if [ "$?" != "0" ]; then | ||
| 167 | # Process stopped, break from loop | ||
| 168 | log_success_msg "$NAME process was stopped" | ||
| 169 | return 0 | ||
| 170 | fi | ||
| 171 | |||
| 172 | # Process still up after signal, sleep and wait | ||
| 173 | sleep 1 | ||
| 174 | n=$(expr $n + 1) | ||
| 175 | if [ $n -eq 30 ]; then | ||
| 176 | # After 30 seconds, send SIGKILL | ||
| 177 | echo "Timeout exceeded, sending SIGKILL..." | ||
| 178 | kill -s KILL $PID &>/dev/null | ||
| 179 | elif [ $? -eq 40 ]; then | ||
| 180 | # After 40 seconds, error out | ||
| 181 | log_failure_msg "could not stop $NAME process" | ||
| 182 | exit 1 | ||
| 183 | fi | ||
| 184 | done | ||
| 185 | fi | ||
| 186 | fi | ||
| 187 | log_success_msg "$NAME process already stopped" | ||
| 188 | } | ||
| 189 | |||
| 190 | function restart() { | ||
| 191 | # Restart the daemon. | ||
| 192 | stop | ||
| 193 | start | ||
| 194 | } | ||
| 195 | |||
| 196 | function status() { | ||
| 197 | # Check the status of the process. | ||
| 198 | if [ -f $PIDFILE ]; then | ||
| 199 | PID="$(cat $PIDFILE)" | ||
| 200 | if kill -0 $PID &>/dev/null; then | ||
| 201 | log_success_msg "$NAME process is running" | ||
| 202 | exit 0 | ||
| 203 | fi | ||
| 204 | fi | ||
| 205 | log_failure_msg "$NAME process is not running" | ||
| 206 | exit 1 | ||
| 207 | } | ||
| 208 | |||
| 209 | case $1 in | ||
| 210 | start) | ||
| 211 | start | ||
| 212 | ;; | ||
| 213 | |||
| 214 | stop) | ||
| 215 | stop | ||
| 216 | ;; | ||
| 217 | |||
| 218 | restart) | ||
| 219 | restart | ||
| 220 | ;; | ||
| 221 | |||
| 222 | status) | ||
| 223 | status | ||
| 224 | ;; | ||
| 225 | |||
| 226 | version) | ||
| 227 | $DAEMON version | ||
| 228 | ;; | ||
| 229 | |||
| 230 | *) | ||
| 231 | # For invalid arguments, print the usage message. | ||
| 232 | echo "Usage: $0 {start|stop|restart|status|version}" | ||
| 233 | exit 2 | ||
| 234 | ;; | ||
| 235 | esac | ||
diff --git a/meta-oe/recipes-dbs/influxdb/influxdb/influxdb.conf b/meta-oe/recipes-dbs/influxdb/influxdb/influxdb.conf new file mode 100644 index 0000000000..21c0926f2d --- /dev/null +++ b/meta-oe/recipes-dbs/influxdb/influxdb/influxdb.conf | |||
| @@ -0,0 +1,586 @@ | |||
| 1 | ### Welcome to the InfluxDB configuration file. | ||
| 2 | |||
| 3 | # The values in this file override the default values used by the system if | ||
| 4 | # a config option is not specified. The commented out lines are the configuration | ||
| 5 | # field and the default value used. Uncommenting a line and changing the value | ||
| 6 | # will change the value used at runtime when the process is restarted. | ||
| 7 | |||
| 8 | # Once every 24 hours InfluxDB will report usage data to usage.influxdata.com | ||
| 9 | # The data includes a random ID, os, arch, version, the number of series and other | ||
| 10 | # usage data. No data from user databases is ever transmitted. | ||
| 11 | # Change this option to true to disable reporting. | ||
| 12 | # reporting-disabled = false | ||
| 13 | |||
| 14 | # Bind address to use for the RPC service for backup and restore. | ||
| 15 | # bind-address = "127.0.0.1:8088" | ||
| 16 | |||
| 17 | ### | ||
| 18 | ### [meta] | ||
| 19 | ### | ||
| 20 | ### Controls the parameters for the Raft consensus group that stores metadata | ||
| 21 | ### about the InfluxDB cluster. | ||
| 22 | ### | ||
| 23 | |||
| 24 | [meta] | ||
| 25 | # Where the metadata/raft database is stored | ||
| 26 | dir = "/var/lib/influxdb/meta" | ||
| 27 | |||
| 28 | # Automatically create a default retention policy when creating a database. | ||
| 29 | # retention-autocreate = true | ||
| 30 | |||
| 31 | # If log messages are printed for the meta service | ||
| 32 | # logging-enabled = true | ||
| 33 | |||
| 34 | ### | ||
| 35 | ### [data] | ||
| 36 | ### | ||
| 37 | ### Controls where the actual shard data for InfluxDB lives and how it is | ||
| 38 | ### flushed from the WAL. "dir" may need to be changed to a suitable place | ||
| 39 | ### for your system, but the WAL settings are an advanced configuration. The | ||
| 40 | ### defaults should work for most systems. | ||
| 41 | ### | ||
| 42 | |||
| 43 | [data] | ||
| 44 | # The directory where the TSM storage engine stores TSM files. | ||
| 45 | dir = "/var/lib/influxdb/data" | ||
| 46 | |||
| 47 | # The directory where the TSM storage engine stores WAL files. | ||
| 48 | wal-dir = "/var/lib/influxdb/wal" | ||
| 49 | |||
| 50 | # The amount of time that a write will wait before fsyncing. A duration | ||
| 51 | # greater than 0 can be used to batch up multiple fsync calls. This is useful for slower | ||
| 52 | # disks or when WAL write contention is seen. A value of 0s fsyncs every write to the WAL. | ||
| 53 | # Values in the range of 0-100ms are recommended for non-SSD disks. | ||
| 54 | # wal-fsync-delay = "0s" | ||
| 55 | |||
| 56 | |||
| 57 | # The type of shard index to use for new shards. The default is an in-memory index that is | ||
| 58 | # recreated at startup. A value of "tsi1" will use a disk based index that supports higher | ||
| 59 | # cardinality datasets. | ||
| 60 | # index-version = "inmem" | ||
| 61 | |||
| 62 | # Trace logging provides more verbose output around the tsm engine. Turning | ||
| 63 | # this on can provide more useful output for debugging tsm engine issues. | ||
| 64 | # trace-logging-enabled = false | ||
| 65 | |||
| 66 | # Whether queries should be logged before execution. Very useful for troubleshooting, but will | ||
| 67 | # log any sensitive data contained within a query. | ||
| 68 | # query-log-enabled = true | ||
| 69 | |||
| 70 | # Validates incoming writes to ensure keys only have valid unicode characters. | ||
| 71 | # This setting will incur a small overhead because every key must be checked. | ||
| 72 | # validate-keys = false | ||
| 73 | |||
| 74 | # Settings for the TSM engine | ||
| 75 | |||
| 76 | # CacheMaxMemorySize is the maximum size a shard's cache can | ||
| 77 | # reach before it starts rejecting writes. | ||
| 78 | # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k). | ||
| 79 | # Values without a size suffix are in bytes. | ||
| 80 | # cache-max-memory-size = "1g" | ||
| 81 | |||
| 82 | # CacheSnapshotMemorySize is the size at which the engine will | ||
| 83 | # snapshot the cache and write it to a TSM file, freeing up memory | ||
| 84 | # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k). | ||
| 85 | # Values without a size suffix are in bytes. | ||
| 86 | # cache-snapshot-memory-size = "25m" | ||
| 87 | |||
| 88 | # CacheSnapshotWriteColdDuration is the length of time at | ||
| 89 | # which the engine will snapshot the cache and write it to | ||
| 90 | # a new TSM file if the shard hasn't received writes or deletes | ||
| 91 | # cache-snapshot-write-cold-duration = "10m" | ||
| 92 | |||
| 93 | # CompactFullWriteColdDuration is the duration at which the engine | ||
| 94 | # will compact all TSM files in a shard if it hasn't received a | ||
| 95 | # write or delete | ||
| 96 | # compact-full-write-cold-duration = "4h" | ||
| 97 | |||
| 98 | # The maximum number of concurrent full and level compactions that can run at one time. A | ||
| 99 | # value of 0 results in 50% of runtime.GOMAXPROCS(0) used at runtime. Any number greater | ||
| 100 | # than 0 limits compactions to that value. This setting does not apply | ||
| 101 | # to cache snapshotting. | ||
| 102 | # max-concurrent-compactions = 0 | ||
| 103 | |||
| 104 | # CompactThroughput is the rate limit in bytes per second that we | ||
| 105 | # will allow TSM compactions to write to disk. Note that short bursts are allowed | ||
| 106 | # to happen at a possibly larger value, set by CompactThroughputBurst | ||
| 107 | # compact-throughput = "48m" | ||
| 108 | |||
| 109 | # CompactThroughputBurst is the rate limit in bytes per second that we | ||
| 110 | # will allow TSM compactions to write to disk. | ||
| 111 | # compact-throughput-burst = "48m" | ||
| 112 | |||
| 113 | # If true, then the mmap advise value MADV_WILLNEED will be provided to the kernel with respect to | ||
| 114 | # TSM files. This setting has been found to be problematic on some kernels, and defaults to off. | ||
| 115 | # It might help users who have slow disks in some cases. | ||
| 116 | # tsm-use-madv-willneed = false | ||
| 117 | |||
| 118 | # Settings for the inmem index | ||
| 119 | |||
| 120 | # The maximum series allowed per database before writes are dropped. This limit can prevent | ||
| 121 | # high cardinality issues at the database level. This limit can be disabled by setting it to | ||
| 122 | # 0. | ||
| 123 | # max-series-per-database = 1000000 | ||
| 124 | |||
| 125 | # The maximum number of tag values per tag that are allowed before writes are dropped. This limit | ||
| 126 | # can prevent high cardinality tag values from being written to a measurement. This limit can be | ||
| 127 | # disabled by setting it to 0. | ||
| 128 | # max-values-per-tag = 100000 | ||
| 129 | |||
| 130 | # Settings for the tsi1 index | ||
| 131 | |||
| 132 | # The threshold, in bytes, when an index write-ahead log file will compact | ||
| 133 | # into an index file. Lower sizes will cause log files to be compacted more | ||
| 134 | # quickly and result in lower heap usage at the expense of write throughput. | ||
| 135 | # Higher sizes will be compacted less frequently, store more series in-memory, | ||
| 136 | # and provide higher write throughput. | ||
| 137 | # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k). | ||
| 138 | # Values without a size suffix are in bytes. | ||
| 139 | # max-index-log-file-size = "1m" | ||
| 140 | |||
| 141 | # The size of the internal cache used in the TSI index to store previously | ||
| 142 | # calculated series results. Cached results will be returned quickly from the cache rather | ||
| 143 | # than needing to be recalculated when a subsequent query with a matching tag key/value | ||
| 144 | # predicate is executed. Setting this value to 0 will disable the cache, which may | ||
| 145 | # lead to query performance issues. | ||
| 146 | # This value should only be increased if it is known that the set of regularly used | ||
| 147 | # tag key/value predicates across all measurements for a database is larger than 100. An | ||
| 148 | # increase in cache size may lead to an increase in heap usage. | ||
| 149 | series-id-set-cache-size = 100 | ||
| 150 | |||
| 151 | ### | ||
| 152 | ### [coordinator] | ||
| 153 | ### | ||
| 154 | ### Controls the clustering service configuration. | ||
| 155 | ### | ||
| 156 | |||
| 157 | [coordinator] | ||
| 158 | # The default time a write request will wait until a "timeout" error is returned to the caller. | ||
| 159 | # write-timeout = "10s" | ||
| 160 | |||
| 161 | # The maximum number of concurrent queries allowed to be executing at one time. If a query is | ||
| 162 | # executed and exceeds this limit, an error is returned to the caller. This limit can be disabled | ||
| 163 | # by setting it to 0. | ||
| 164 | # max-concurrent-queries = 0 | ||
| 165 | |||
| 166 | # The maximum time a query will is allowed to execute before being killed by the system. This limit | ||
| 167 | # can help prevent run away queries. Setting the value to 0 disables the limit. | ||
| 168 | # query-timeout = "0s" | ||
| 169 | |||
| 170 | # The time threshold when a query will be logged as a slow query. This limit can be set to help | ||
| 171 | # discover slow or resource intensive queries. Setting the value to 0 disables the slow query logging. | ||
| 172 | # log-queries-after = "0s" | ||
| 173 | |||
| 174 | # The maximum number of points a SELECT can process. A value of 0 will make | ||
| 175 | # the maximum point count unlimited. This will only be checked every second so queries will not | ||
| 176 | # be aborted immediately when hitting the limit. | ||
| 177 | # max-select-point = 0 | ||
| 178 | |||
| 179 | # The maximum number of series a SELECT can run. A value of 0 will make the maximum series | ||
| 180 | # count unlimited. | ||
| 181 | # max-select-series = 0 | ||
| 182 | |||
| 183 | # The maximum number of group by time bucket a SELECT can create. A value of zero will max the maximum | ||
| 184 | # number of buckets unlimited. | ||
| 185 | # max-select-buckets = 0 | ||
| 186 | |||
| 187 | ### | ||
| 188 | ### [retention] | ||
| 189 | ### | ||
| 190 | ### Controls the enforcement of retention policies for evicting old data. | ||
| 191 | ### | ||
| 192 | |||
| 193 | [retention] | ||
| 194 | # Determines whether retention policy enforcement enabled. | ||
| 195 | # enabled = true | ||
| 196 | |||
| 197 | # The interval of time when retention policy enforcement checks run. | ||
| 198 | # check-interval = "30m" | ||
| 199 | |||
| 200 | ### | ||
| 201 | ### [shard-precreation] | ||
| 202 | ### | ||
| 203 | ### Controls the precreation of shards, so they are available before data arrives. | ||
| 204 | ### Only shards that, after creation, will have both a start- and end-time in the | ||
| 205 | ### future, will ever be created. Shards are never precreated that would be wholly | ||
| 206 | ### or partially in the past. | ||
| 207 | |||
| 208 | [shard-precreation] | ||
| 209 | # Determines whether shard pre-creation service is enabled. | ||
| 210 | # enabled = true | ||
| 211 | |||
| 212 | # The interval of time when the check to pre-create new shards runs. | ||
| 213 | # check-interval = "10m" | ||
| 214 | |||
| 215 | # The default period ahead of the endtime of a shard group that its successor | ||
| 216 | # group is created. | ||
| 217 | # advance-period = "30m" | ||
| 218 | |||
| 219 | ### | ||
| 220 | ### Controls the system self-monitoring, statistics and diagnostics. | ||
| 221 | ### | ||
| 222 | ### The internal database for monitoring data is created automatically if | ||
| 223 | ### if it does not already exist. The target retention within this database | ||
| 224 | ### is called 'monitor' and is also created with a retention period of 7 days | ||
| 225 | ### and a replication factor of 1, if it does not exist. In all cases the | ||
| 226 | ### this retention policy is configured as the default for the database. | ||
| 227 | |||
| 228 | [monitor] | ||
| 229 | # Whether to record statistics internally. | ||
| 230 | # store-enabled = true | ||
| 231 | |||
| 232 | # The destination database for recorded statistics | ||
| 233 | # store-database = "_internal" | ||
| 234 | |||
| 235 | # The interval at which to record statistics | ||
| 236 | # store-interval = "10s" | ||
| 237 | |||
| 238 | ### | ||
| 239 | ### [http] | ||
| 240 | ### | ||
| 241 | ### Controls how the HTTP endpoints are configured. These are the primary | ||
| 242 | ### mechanism for getting data into and out of InfluxDB. | ||
| 243 | ### | ||
| 244 | |||
| 245 | [http] | ||
| 246 | # Determines whether HTTP endpoint is enabled. | ||
| 247 | # enabled = true | ||
| 248 | |||
| 249 | # Determines whether the Flux query endpoint is enabled. | ||
| 250 | # flux-enabled = false | ||
| 251 | |||
| 252 | # Determines whether the Flux query logging is enabled. | ||
| 253 | # flux-log-enabled = false | ||
| 254 | |||
| 255 | # The bind address used by the HTTP service. | ||
| 256 | # bind-address = ":8086" | ||
| 257 | |||
| 258 | # Determines whether user authentication is enabled over HTTP/HTTPS. | ||
| 259 | # auth-enabled = false | ||
| 260 | |||
| 261 | # The default realm sent back when issuing a basic auth challenge. | ||
| 262 | # realm = "InfluxDB" | ||
| 263 | |||
| 264 | # Determines whether HTTP request logging is enabled. | ||
| 265 | # log-enabled = true | ||
| 266 | |||
| 267 | # Determines whether the HTTP write request logs should be suppressed when the log is enabled. | ||
| 268 | # suppress-write-log = false | ||
| 269 | |||
| 270 | # When HTTP request logging is enabled, this option specifies the path where | ||
| 271 | # log entries should be written. If unspecified, the default is to write to stderr, which | ||
| 272 | # intermingles HTTP logs with internal InfluxDB logging. | ||
| 273 | # | ||
| 274 | # If influxd is unable to access the specified path, it will log an error and fall back to writing | ||
| 275 | # the request log to stderr. | ||
| 276 | # access-log-path = "" | ||
| 277 | |||
| 278 | # Filters which requests should be logged. Each filter is of the pattern NNN, NNX, or NXX where N is | ||
| 279 | # a number and X is a wildcard for any number. To filter all 5xx responses, use the string 5xx. | ||
| 280 | # If multiple filters are used, then only one has to match. The default is to have no filters which | ||
| 281 | # will cause every request to be printed. | ||
| 282 | # access-log-status-filters = [] | ||
| 283 | |||
| 284 | # Determines whether detailed write logging is enabled. | ||
| 285 | # write-tracing = false | ||
| 286 | |||
| 287 | # Determines whether the pprof endpoint is enabled. This endpoint is used for | ||
| 288 | # troubleshooting and monitoring. | ||
| 289 | # pprof-enabled = true | ||
| 290 | |||
| 291 | # Enables authentication on pprof endpoints. Users will need admin permissions | ||
| 292 | # to access the pprof endpoints when this setting is enabled. This setting has | ||
| 293 | # no effect if either auth-enabled or pprof-enabled are set to false. | ||
| 294 | # pprof-auth-enabled = false | ||
| 295 | |||
| 296 | # Enables a pprof endpoint that binds to localhost:6060 immediately on startup. | ||
| 297 | # This is only needed to debug startup issues. | ||
| 298 | # debug-pprof-enabled = false | ||
| 299 | |||
| 300 | # Enables authentication on the /ping, /metrics, and deprecated /status | ||
| 301 | # endpoints. This setting has no effect if auth-enabled is set to false. | ||
| 302 | # ping-auth-enabled = false | ||
| 303 | |||
| 304 | # Determines whether HTTPS is enabled. | ||
| 305 | # https-enabled = false | ||
| 306 | |||
| 307 | # The SSL certificate to use when HTTPS is enabled. | ||
| 308 | # https-certificate = "/etc/ssl/influxdb.pem" | ||
| 309 | |||
| 310 | # Use a separate private key location. | ||
| 311 | # https-private-key = "" | ||
| 312 | |||
| 313 | # The JWT auth shared secret to validate requests using JSON web tokens. | ||
| 314 | # shared-secret = "" | ||
| 315 | |||
| 316 | # The default chunk size for result sets that should be chunked. | ||
| 317 | # max-row-limit = 0 | ||
| 318 | |||
| 319 | # The maximum number of HTTP connections that may be open at once. New connections that | ||
| 320 | # would exceed this limit are dropped. Setting this value to 0 disables the limit. | ||
| 321 | # max-connection-limit = 0 | ||
| 322 | |||
| 323 | # Enable http service over unix domain socket | ||
| 324 | # unix-socket-enabled = false | ||
| 325 | |||
| 326 | # The path of the unix domain socket. | ||
| 327 | # bind-socket = "/var/run/influxdb.sock" | ||
| 328 | |||
| 329 | # The maximum size of a client request body, in bytes. Setting this value to 0 disables the limit. | ||
| 330 | # max-body-size = 25000000 | ||
| 331 | |||
| 332 | # The maximum number of writes processed concurrently. | ||
| 333 | # Setting this to 0 disables the limit. | ||
| 334 | # max-concurrent-write-limit = 0 | ||
| 335 | |||
| 336 | # The maximum number of writes queued for processing. | ||
| 337 | # Setting this to 0 disables the limit. | ||
| 338 | # max-enqueued-write-limit = 0 | ||
| 339 | |||
| 340 | # The maximum duration for a write to wait in the queue to be processed. | ||
| 341 | # Setting this to 0 or setting max-concurrent-write-limit to 0 disables the limit. | ||
| 342 | # enqueued-write-timeout = 0 | ||
| 343 | |||
| 344 | ### | ||
| 345 | ### [logging] | ||
| 346 | ### | ||
| 347 | ### Controls how the logger emits logs to the output. | ||
| 348 | ### | ||
| 349 | |||
| 350 | [logging] | ||
| 351 | # Determines which log encoder to use for logs. Available options | ||
| 352 | # are auto, logfmt, and json. auto will use a more a more user-friendly | ||
| 353 | # output format if the output terminal is a TTY, but the format is not as | ||
| 354 | # easily machine-readable. When the output is a non-TTY, auto will use | ||
| 355 | # logfmt. | ||
| 356 | # format = "auto" | ||
| 357 | |||
| 358 | # Determines which level of logs will be emitted. The available levels | ||
| 359 | # are error, warn, info, and debug. Logs that are equal to or above the | ||
| 360 | # specified level will be emitted. | ||
| 361 | # level = "info" | ||
| 362 | |||
| 363 | # Suppresses the logo output that is printed when the program is started. | ||
| 364 | # The logo is always suppressed if STDOUT is not a TTY. | ||
| 365 | # suppress-logo = false | ||
| 366 | |||
| 367 | ### | ||
| 368 | ### [subscriber] | ||
| 369 | ### | ||
| 370 | ### Controls the subscriptions, which can be used to fork a copy of all data | ||
| 371 | ### received by the InfluxDB host. | ||
| 372 | ### | ||
| 373 | |||
| 374 | [subscriber] | ||
| 375 | # Determines whether the subscriber service is enabled. | ||
| 376 | # enabled = true | ||
| 377 | |||
| 378 | # The default timeout for HTTP writes to subscribers. | ||
| 379 | # http-timeout = "30s" | ||
| 380 | |||
| 381 | # Allows insecure HTTPS connections to subscribers. This is useful when testing with self- | ||
| 382 | # signed certificates. | ||
| 383 | # insecure-skip-verify = false | ||
| 384 | |||
| 385 | # The path to the PEM encoded CA certs file. If the empty string, the default system certs will be used | ||
| 386 | # ca-certs = "" | ||
| 387 | |||
| 388 | # The number of writer goroutines processing the write channel. | ||
| 389 | # write-concurrency = 40 | ||
| 390 | |||
| 391 | # The number of in-flight writes buffered in the write channel. | ||
| 392 | # write-buffer-size = 1000 | ||
| 393 | |||
| 394 | |||
| 395 | ### | ||
| 396 | ### [[graphite]] | ||
| 397 | ### | ||
| 398 | ### Controls one or many listeners for Graphite data. | ||
| 399 | ### | ||
| 400 | |||
| 401 | [[graphite]] | ||
| 402 | # Determines whether the graphite endpoint is enabled. | ||
| 403 | # enabled = false | ||
| 404 | # database = "graphite" | ||
| 405 | # retention-policy = "" | ||
| 406 | # bind-address = ":2003" | ||
| 407 | # protocol = "tcp" | ||
| 408 | # consistency-level = "one" | ||
| 409 | |||
| 410 | # These next lines control how batching works. You should have this enabled | ||
| 411 | # otherwise you could get dropped metrics or poor performance. Batching | ||
| 412 | # will buffer points in memory if you have many coming in. | ||
| 413 | |||
| 414 | # Flush if this many points get buffered | ||
| 415 | # batch-size = 5000 | ||
| 416 | |||
| 417 | # number of batches that may be pending in memory | ||
| 418 | # batch-pending = 10 | ||
| 419 | |||
| 420 | # Flush at least this often even if we haven't hit buffer limit | ||
| 421 | # batch-timeout = "1s" | ||
| 422 | |||
| 423 | # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max. | ||
| 424 | # udp-read-buffer = 0 | ||
| 425 | |||
| 426 | ### This string joins multiple matching 'measurement' values providing more control over the final measurement name. | ||
| 427 | # separator = "." | ||
| 428 | |||
| 429 | ### Default tags that will be added to all metrics. These can be overridden at the template level | ||
| 430 | ### or by tags extracted from metric | ||
| 431 | # tags = ["region=us-east", "zone=1c"] | ||
| 432 | |||
| 433 | ### Each template line requires a template pattern. It can have an optional | ||
| 434 | ### filter before the template and separated by spaces. It can also have optional extra | ||
| 435 | ### tags following the template. Multiple tags should be separated by commas and no spaces | ||
| 436 | ### similar to the line protocol format. There can be only one default template. | ||
| 437 | # templates = [ | ||
| 438 | # "*.app env.service.resource.measurement", | ||
| 439 | # # Default template | ||
| 440 | # "server.*", | ||
| 441 | # ] | ||
| 442 | |||
| 443 | ### | ||
| 444 | ### [collectd] | ||
| 445 | ### | ||
| 446 | ### Controls one or many listeners for collectd data. | ||
| 447 | ### | ||
| 448 | |||
| 449 | [[collectd]] | ||
| 450 | # enabled = false | ||
| 451 | # bind-address = ":25826" | ||
| 452 | # database = "collectd" | ||
| 453 | # retention-policy = "" | ||
| 454 | # | ||
| 455 | # The collectd service supports either scanning a directory for multiple types | ||
| 456 | # db files, or specifying a single db file. | ||
| 457 | # typesdb = "/usr/local/share/collectd" | ||
| 458 | # | ||
| 459 | # security-level = "none" | ||
| 460 | # auth-file = "/etc/collectd/auth_file" | ||
| 461 | |||
| 462 | # These next lines control how batching works. You should have this enabled | ||
| 463 | # otherwise you could get dropped metrics or poor performance. Batching | ||
| 464 | # will buffer points in memory if you have many coming in. | ||
| 465 | |||
| 466 | # Flush if this many points get buffered | ||
| 467 | # batch-size = 5000 | ||
| 468 | |||
| 469 | # Number of batches that may be pending in memory | ||
| 470 | # batch-pending = 10 | ||
| 471 | |||
| 472 | # Flush at least this often even if we haven't hit buffer limit | ||
| 473 | # batch-timeout = "10s" | ||
| 474 | |||
| 475 | # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max. | ||
| 476 | # read-buffer = 0 | ||
| 477 | |||
| 478 | # Multi-value plugins can be handled two ways. | ||
| 479 | # "split" will parse and store the multi-value plugin data into separate measurements | ||
| 480 | # "join" will parse and store the multi-value plugin as a single multi-value measurement. | ||
| 481 | # "split" is the default behavior for backward compatibility with previous versions of influxdb. | ||
| 482 | # parse-multivalue-plugin = "split" | ||
| 483 | ### | ||
| 484 | ### [opentsdb] | ||
| 485 | ### | ||
| 486 | ### Controls one or many listeners for OpenTSDB data. | ||
| 487 | ### | ||
| 488 | |||
| 489 | [[opentsdb]] | ||
| 490 | # enabled = false | ||
| 491 | # bind-address = ":4242" | ||
| 492 | # database = "opentsdb" | ||
| 493 | # retention-policy = "" | ||
| 494 | # consistency-level = "one" | ||
| 495 | # tls-enabled = false | ||
| 496 | # certificate= "/etc/ssl/influxdb.pem" | ||
| 497 | |||
| 498 | # Log an error for every malformed point. | ||
| 499 | # log-point-errors = true | ||
| 500 | |||
| 501 | # These next lines control how batching works. You should have this enabled | ||
| 502 | # otherwise you could get dropped metrics or poor performance. Only points | ||
| 503 | # metrics received over the telnet protocol undergo batching. | ||
| 504 | |||
| 505 | # Flush if this many points get buffered | ||
| 506 | # batch-size = 1000 | ||
| 507 | |||
| 508 | # Number of batches that may be pending in memory | ||
| 509 | # batch-pending = 5 | ||
| 510 | |||
| 511 | # Flush at least this often even if we haven't hit buffer limit | ||
| 512 | # batch-timeout = "1s" | ||
| 513 | |||
| 514 | ### | ||
| 515 | ### [[udp]] | ||
| 516 | ### | ||
| 517 | ### Controls the listeners for InfluxDB line protocol data via UDP. | ||
| 518 | ### | ||
| 519 | |||
| 520 | [[udp]] | ||
| 521 | # enabled = false | ||
| 522 | # bind-address = ":8089" | ||
| 523 | # database = "udp" | ||
| 524 | # retention-policy = "" | ||
| 525 | |||
| 526 | # InfluxDB precision for timestamps on received points ("" or "n", "u", "ms", "s", "m", "h") | ||
| 527 | # precision = "" | ||
| 528 | |||
| 529 | # These next lines control how batching works. You should have this enabled | ||
| 530 | # otherwise you could get dropped metrics or poor performance. Batching | ||
| 531 | # will buffer points in memory if you have many coming in. | ||
| 532 | |||
| 533 | # Flush if this many points get buffered | ||
| 534 | # batch-size = 5000 | ||
| 535 | |||
| 536 | # Number of batches that may be pending in memory | ||
| 537 | # batch-pending = 10 | ||
| 538 | |||
| 539 | # Will flush at least this often even if we haven't hit buffer limit | ||
| 540 | # batch-timeout = "1s" | ||
| 541 | |||
| 542 | # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max. | ||
| 543 | # read-buffer = 0 | ||
| 544 | |||
| 545 | ### | ||
| 546 | ### [continuous_queries] | ||
| 547 | ### | ||
| 548 | ### Controls how continuous queries are run within InfluxDB. | ||
| 549 | ### | ||
| 550 | |||
| 551 | [continuous_queries] | ||
| 552 | # Determines whether the continuous query service is enabled. | ||
| 553 | # enabled = true | ||
| 554 | |||
| 555 | # Controls whether queries are logged when executed by the CQ service. | ||
| 556 | # log-enabled = true | ||
| 557 | |||
| 558 | # Controls whether queries are logged to the self-monitoring data store. | ||
| 559 | # query-stats-enabled = false | ||
| 560 | |||
| 561 | # interval for how often continuous queries will be checked if they need to run | ||
| 562 | # run-interval = "1s" | ||
| 563 | |||
| 564 | ### | ||
| 565 | ### [tls] | ||
| 566 | ### | ||
| 567 | ### Global configuration settings for TLS in InfluxDB. | ||
| 568 | ### | ||
| 569 | |||
| 570 | [tls] | ||
| 571 | # Determines the available set of cipher suites. See https://golang.org/pkg/crypto/tls/#pkg-constants | ||
| 572 | # for a list of available ciphers, which depends on the version of Go (use the query | ||
| 573 | # SHOW DIAGNOSTICS to see the version of Go used to build InfluxDB). If not specified, uses | ||
| 574 | # the default settings from Go's crypto/tls package. | ||
| 575 | # ciphers = [ | ||
| 576 | # "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", | ||
| 577 | # "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", | ||
| 578 | # ] | ||
| 579 | |||
| 580 | # Minimum version of the tls protocol that will be negotiated. If not specified, uses the | ||
| 581 | # default settings from Go's crypto/tls package. | ||
| 582 | # min-version = "tls1.2" | ||
| 583 | |||
| 584 | # Maximum version of the tls protocol that will be negotiated. If not specified, uses the | ||
| 585 | # default settings from Go's crypto/tls package. | ||
| 586 | # max-version = "tls1.3" | ||
diff --git a/meta-oe/recipes-dbs/influxdb/influxdb_1.7.10.bb b/meta-oe/recipes-dbs/influxdb/influxdb_1.7.10.bb new file mode 100644 index 0000000000..4f2bb78b23 --- /dev/null +++ b/meta-oe/recipes-dbs/influxdb/influxdb_1.7.10.bb | |||
| @@ -0,0 +1,63 @@ | |||
| 1 | DESCRIPTION = "InfluxDB is a time series database designed to handle high write and query loads." | ||
| 2 | HOMEPAGE = "https://www.influxdata.com/products/influxdb-overview/" | ||
| 3 | |||
| 4 | LICENSE = "MIT" | ||
| 5 | LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=ba8146ad9cc2a128209983265136e06a" | ||
| 6 | |||
| 7 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" | ||
| 8 | |||
| 9 | RDEPENDS_${PN} = "bash" | ||
| 10 | RDEPENDS_${PN}-dev = "bash" | ||
| 11 | |||
| 12 | GO_IMPORT = "github.com/influxdata/influxdb" | ||
| 13 | |||
| 14 | GO_INSTALL = "\ | ||
| 15 | ${GO_IMPORT}/cmd/influx \ | ||
| 16 | ${GO_IMPORT}/cmd/influxd \ | ||
| 17 | " | ||
| 18 | |||
| 19 | SRC_URI = "\ | ||
| 20 | git://${GO_IMPORT};protocol=https;branch=1.7;destsuffix=${BPN}-${PV}/src/${GO_IMPORT} \ | ||
| 21 | file://influxdb \ | ||
| 22 | file://influxdb.conf \ | ||
| 23 | " | ||
| 24 | |||
| 25 | SRCREV = "c958f436b2e538a88a7815aad721c7774a0b8f63" | ||
| 26 | |||
| 27 | inherit go-mod systemd update-rc.d useradd | ||
| 28 | |||
| 29 | USERADD_PACKAGES = "${PN}" | ||
| 30 | USERADD_PARAM_${PN} = "--system -d /var/lib/influxdb -m -s /bin/nologin influxdb" | ||
| 31 | |||
| 32 | do_install_prepend() { | ||
| 33 | rm ${B}/src/${GO_IMPORT}/build.py | ||
| 34 | rm ${B}/src/${GO_IMPORT}/build.sh | ||
| 35 | rm ${B}/src/${GO_IMPORT}/Dockerfile* | ||
| 36 | } | ||
| 37 | |||
| 38 | do_install_append() { | ||
| 39 | install -d ${D}${sysconfdir}/influxdb | ||
| 40 | install -m 0644 ${WORKDIR}/influxdb.conf ${D}${sysconfdir}/influxdb | ||
| 41 | chown -R root.influxdb ${D}${sysconfdir}/influxdb | ||
| 42 | |||
| 43 | install -d ${D}${sysconfdir}/init.d | ||
| 44 | install -m 0755 ${WORKDIR}/influxdb ${D}${sysconfdir}/init.d/influxdb | ||
| 45 | |||
| 46 | if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ] ; then | ||
| 47 | install -d ${D}${sysconfdir}/logrotate.d | ||
| 48 | install -m 0644 ${S}/src/${GO_IMPORT}/scripts/logrotate ${D}${sysconfdir}/logrotate.d/influxdb | ||
| 49 | fi | ||
| 50 | |||
| 51 | if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ] ; then | ||
| 52 | install -d ${D}${systemd_unitdir}/system | ||
| 53 | install -m 0644 ${S}/src/${GO_IMPORT}/scripts/influxdb.service ${D}${systemd_system_unitdir}/influxdb.service | ||
| 54 | fi | ||
| 55 | |||
| 56 | # TODO chown | ||
| 57 | } | ||
| 58 | |||
| 59 | INITSCRIPT_PACKAGES = "${PN}" | ||
| 60 | INITSCRIPT_NAME = "influxdb" | ||
| 61 | INITSCRIPT_PARAMS = "defaults" | ||
| 62 | |||
| 63 | SYSTEMD_SERVICE_${PN} = "influxdb.service" | ||
