diff --git a/influxdb/README.md b/influxdb/README.md index 7b346d1..03d5c5c 100644 --- a/influxdb/README.md +++ b/influxdb/README.md @@ -19,3 +19,6 @@ cd ambient7/influxdb/docker docker logs ambient7-influxdb docker logs -f ambient7-influxdb ``` + +### [Upgrade from influxdb 0.9 to 1.1 (ambient7 0.2 -> 0.3)](upgrade_0-9_1-1/README.md) + diff --git a/influxdb/clean_data.sh b/influxdb/clean_data.sh index 2184090..9fe1038 100755 --- a/influxdb/clean_data.sh +++ b/influxdb/clean_data.sh @@ -21,7 +21,7 @@ echo -n "Are you sure to remove all value from measurement '${MEASUREMENT}' [N/y read Y if [[ $Y == "Y" || $Y == "y" ]];then - curl -v -f --get "http://${HOST}/query?db=ambient7" \ + curl -v -f -XPOST "http://${HOST}/query?db=ambient7" \ "$AUTH_PARAM" \ --data-urlencode "q=DROP SERIES FROM ${MEASUREMENT}" \ && echo -e "\nDone" diff --git a/influxdb/create_ambient7_users.sh b/influxdb/create_ambient7_users.sh index e4961f4..6cb7441 100755 --- a/influxdb/create_ambient7_users.sh +++ b/influxdb/create_ambient7_users.sh @@ -21,10 +21,10 @@ function create_user() { perms=$2 echo "Password for user $user " read pass - curl -v -f --get "http://${HOST}/query" \ + curl -v -f -XPOST "http://${HOST}/query" \ --data-urlencode 'q=CREATE USER "'$user'" WITH PASSWORD '"'"$pass"'" \ "$AUTH_PARAM" - curl -v -f --get "http://${HOST}/query" \ + curl -v -f -XPOST "http://${HOST}/query" \ --data-urlencode 'q=GRANT '$perms' ON '$DB' TO "'$user'"' \ "$AUTH_PARAM" echo -e "\n\n" diff --git a/influxdb/docker/Dockerfile b/influxdb/docker/Dockerfile index 4bf51f8..e7ed64c 100644 --- a/influxdb/docker/Dockerfile +++ b/influxdb/docker/Dockerfile @@ -2,13 +2,12 @@ FROM phusion/baseimage:latest MAINTAINER Nikita Kovalev # Install InfluxDB -ENV INFLUXDB_VERSION 0.9.5.1 -RUN curl -s -o /tmp/influxdb_latest_amd64.deb https://s3.amazonaws.com/influxdb/influxdb_${INFLUXDB_VERSION}_amd64.deb && \ +ENV INFLUXDB_VERSION 1.1.0 +RUN curl -s -o /tmp/influxdb_latest_amd64.deb https://dl.influxdata.com/influxdb/releases/influxdb_${INFLUXDB_VERSION}_amd64.deb && \ dpkg -i /tmp/influxdb_latest_amd64.deb && \ rm /tmp/influxdb_latest_amd64.deb && \ rm -rf /var/lib/apt/lists/* -ADD types.db /usr/share/collectd/types.db ADD config.toml /config/config.toml RUN mkdir -p /etc/service/influxdb diff --git a/influxdb/docker/config.toml b/influxdb/docker/config.toml index 1249f67..be0b1c0 100644 --- a/influxdb/docker/config.toml +++ b/influxdb/docker/config.toml @@ -1,235 +1,27 @@ -### Welcome to the InfluxDB configuration file. - -# Once every 24 hours InfluxDB will report anonymous data to m.influxdb.com -# The data includes raft id (random 8 bytes), os, arch, version, and metadata. -# We don't track ip addresses of servers reporting. This is only used -# to track the number of instances running and the versions, which -# is very helpful for us. -# Change this option to true to disable reporting. reporting-disabled = false -### -### [meta] -### -### Controls the parameters for the Raft consensus group that stores metadata -### about the InfluxDB cluster. -### +hostname = "localhost" [meta] dir = "/data/meta" - hostname = "localhost" - bind-address = ":8088" - retention-autocreate = true - election-timeout = "1s" - heartbeat-timeout = "1s" - leader-lease-timeout = "500ms" - commit-timeout = "50ms" - -### -### [data] -### -### Controls where the actual shard data for InfluxDB lives and how it is -### flushed from the WAL. "dir" may need to be changed to a suitable place -### for your system, but the WAL settings are an advanced configuration. The -### defaults should work for most systems. -### [data] dir = "/data/db" - - # The following WAL settings are for the b1 storage engine used in 0.9.2. They won't - # apply to any new shards created after upgrading to a version > 0.9.3. - max-wal-size = 104857600 # Maximum size the WAL can reach before a flush. Defaults to 100MB. - wal-flush-interval = "10m0s" # Maximum time data can sit in WAL before a flush. - wal-partition-flush-delay = "2s" # The delay time between each WAL partition being flushed. - - # These are the WAL settings for the storage engine >= 0.9.3 wal-dir = "/data/wal" - wal-enable-logging = true - - # When a series in the WAL in-memory cache reaches this size in bytes it is marked as ready to - # flush to the index - # wal-ready-series-size = 25600 - - # Flush and compact a partition once this ratio of series are over the ready size - # wal-compaction-threshold = 0.6 - - # Force a flush and compaction if any series in a partition gets above this size in bytes - # wal-max-series-size = 2097152 - - # Force a flush of all series and full compaction if there have been no writes in this - # amount of time. This is useful for ensuring that shards that are cold for writes don't - # keep a bunch of data cached in memory and in the WAL. - # wal-flush-cold-interval = "10m" - # Force a partition to flush its largest series if it reaches this approximate size in - # bytes. Remember there are 5 partitions so you'll need at least 5x this amount of memory. - # The more memory you have, the bigger this can be. - # wal-partition-size-threshold = 20971520 -### -### [cluster] -### -### Controls non-Raft cluster behavior, which generally includes how data is -### shared across shards. -### -[cluster] - write-timeout = "5s" # The time within which a write operation must complete on the cluster. - shard-writer-timeout = "5s" # The time within which a shard must respond to write. - -### -### [retention] -### -### Controls the enforcement of retention policies for evicting old data. -### -[retention] - enabled = true - check-interval = "10m0s" - -### -### [admin] -### -### Controls the availability of the built-in, web-based admin interface. If HTTPS is -### enabled for the admin interface, HTTPS must also be enabled on the [http] service. -### [admin] enabled = true bind-address = ":8083" https-enabled = false - https-certificate = "/etc/ssl/influxdb.pem" -### -### [http] -### -### Controls how the HTTP endpoints are configured. These are the primary -### mechanism for getting data into and out of InfluxDB. -### [http] enabled = true bind-address = ":8086" auth-enabled = true log-enabled = true - write-tracing = false - pprof-enabled = false https-enabled = false - https-certificate = "/etc/ssl/influxdb.pem" - -### -### [[graphite]] -### -### Controls one or many listeners for Graphite data. -### -[[graphite]] - enabled = false - bind-address = ":2003" - protocol = "tcp" - consistency-level = "one" - separator = "." - database = "graphitedb" - - # These next lines control how batching works. You should have this enabled - # otherwise you could get dropped metrics or poor performance. Batching - # will buffer points in memory if you have many coming in. - - # batch-size = 1000 # will flush if this many points get buffered - # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit - batch-size = 1000 - batch-timeout = "1s" - templates = [ - # filter + template - #"*.app env.service.resource.measurement", - - # filter + template + extra tag - #"stats.* .host.measurement* region=us-west,agent=sensu", - - # default template. Ignore the first graphite component "servers" - "instance.profile.measurement*" - ] - -### -### [collectd] -### -### Controls the listener for collectd data. -### -[collectd] - enabled = false - # bind-address = ":25826" - # database = "collectd" - # retention-policy = "" - # typesdb = "/usr/share/collectd/types.db" - - # These next lines control how batching works. You should have this enabled - # otherwise you could get dropped metrics or poor performance. Batching - # will buffer points in memory if you have many coming in. - - # batch-size = 1000 # will flush if this many points get buffered - # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit - -### -### [opentsdb] -### -### Controls the listener for OpenTSDB data. -### -[opentsdb] - enabled = false - # bind-address = ":4242" - # database = "opentsdb" - # retention-policy = "" - # consistency-level = "one" - -### -### [[udp]] -### -### Controls the listeners for InfluxDB line protocol data via UDP. -### - -[[udp]] - enabled = false - bind-address = ":4444" - database = "udpdb" - - # These next lines control how batching works. You should have this enabled - # otherwise you could get dropped metrics or poor performance. Batching - # will buffer points in memory if you have many coming in. - - # batch-size = 1000 # will flush if this many points get buffered - # batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit - -### -### [monitoring] -### -### Send anonymous usage statistics to m.influxdb.com? -### -[monitoring] - enabled = false - write-interval = "24h" - -### -### [continuous_queries] -### -### Controls how continuous queries are run within InfluxDB. -### [continuous_queries] log-enabled = true enabled = true - recompute-previous-n = 2 - recompute-no-older-than = "10m0s" - compute-runs-per-interval = 10 - compute-no-more-than = "2m0s" - -### -### [hinted-handoff] -### -### Controls the hinted handoff feature, which allows nodes to temporarily -### store queued data when one node of a cluster is down for a short period -### of time. -### - -[hinted-handoff] - enabled = true - dir = "/data/hh" - max-size = 1073741824 - max-age = "168h" - retry-rate-limit = 0 - retry-interval = "1s" diff --git a/influxdb/docker/influxdb_build.sh b/influxdb/docker/influxdb_build.sh index 195b75a..23d505c 100755 --- a/influxdb/docker/influxdb_build.sh +++ b/influxdb/docker/influxdb_build.sh @@ -3,7 +3,7 @@ # InfluxDb docker build container script # # Usage: -# cd ambient7/influxdb-setup/docker +# cd ambient7/influxdb/docker # ./influxdb_build.sh # -docker build --tag ambient7/influxdb:0.1 ./ +docker build --tag ambient7/influxdb:0.2 ./ diff --git a/influxdb/docker/influxdb_setup.sh b/influxdb/docker/influxdb_setup.sh index 87f9e2a..df7aab2 100755 --- a/influxdb/docker/influxdb_setup.sh +++ b/influxdb/docker/influxdb_setup.sh @@ -2,11 +2,8 @@ # # InfluxDb docker container setup script # -# On OS X a data dir can't be a shared vbox disk because -# of vboxfs limitations. -# # Usage: -# cd ambient7/influxdb-setup/docker +# cd ambient7/influxdb/docker # ./influxdb_setup.sh DATADIR ADMIN_PASSWORD # DATADIR="$1" @@ -25,4 +22,4 @@ docker run -d -p "${API_PORT}:8086" -p "${ADMIN_PORT}:8083" \ -e "INFLUXDB_INIT_PWD=${ADMIN_PASSWORD}" \ -e "PRE_CREATE_DB=ambient7" \ --name=ambient7-influxdb \ - ambient7/influxdb:0.1 + ambient7/influxdb:0.2 diff --git a/influxdb/docker/run b/influxdb/docker/run index bf74d83..8df5a91 100644 --- a/influxdb/docker/run +++ b/influxdb/docker/run @@ -6,52 +6,11 @@ INFLUX_HOST="localhost" INFLUX_API_PORT="8086" API_URL="http://${INFLUX_HOST}:${INFLUX_API_PORT}" -# Dynamically change the value of 'max-open-shards' to what 'ulimit -n' returns -sed -i "s/^max-open-shards.*/max-open-shards = $(ulimit -n)/" ${CONFIG_FILE} - -# Configure InfluxDB Cluster -# if [ -n "${FORCE_HOSTNAME}" ]; then -# if [ "${FORCE_HOSTNAME}" == "auto" ]; then -# #set hostname with IPv4 eth0 -# HOSTIPNAME=$(ip a show dev eth0 | grep inet | grep eth0 | sed -e 's/^.*inet.//g' -e 's/\/.*$//g') -# /usr/bin/perl -p -i -e "s/hostname = \"localhost\"/hostname = \"${HOSTIPNAME}\"/g" ${CONFIG_FILE} -# else -# /usr/bin/perl -p -i -e "s/hostname = \"localhost\"/hostname = \"${FORCE_HOSTNAME}\"/g" ${CONFIG_FILE} -# fi -# fi - -# NOTE: 'seed-servers.' is nowhere to be found in config.toml, this cannot work anymore! NEED FOR REVIEW! -# if [ -n "${SEEDS}" ]; then -# SEEDS=$(eval SEEDS=$SEEDS ; echo $SEEDS | grep '^\".*\"$' || echo "\""$SEEDS"\"" | sed -e 's/, */", "/g') -# /usr/bin/perl -p -i -e "s/^# seed-servers.*$/seed-servers = [${SEEDS}]/g" ${CONFIG_FILE} -# fi - -# if [ -n "${REPLI_FACTOR}" ]; then -# /usr/bin/perl -p -i -e "s/replication-factor = 1/replication-factor = ${REPLI_FACTOR}/g" ${CONFIG_FILE} -# fi if [ "${PRE_CREATE_DB}" == "**None**" ]; then unset PRE_CREATE_DB fi -# NOTE: It seems this is not used anymore... -# -# if [ "${SSL_CERT}" == "**None**" ]; then -# unset SSL_CERT -# fi -# -# if [ "${SSL_SUPPORT}" == "**False**" ]; then -# unset SSL_SUPPORT -# fi - -# Add UDP support -if [ -n "${UDP_DB}" ]; then - sed -i -r -e "/^\[\[udp\]\]/, /^$/ { s/false/true/; s/#//g; s/\"udpdb\"/\"${UDP_DB}\"/g; }" ${CONFIG_FILE} -fi -if [ -n "${UDP_PORT}" ]; then - sed -i -r -e "/^\[\[udp\]\]/, /^$/ { s/4444/${UDP_PORT}/; }" ${CONFIG_FILE} -fi - echo "influxdb configuration: " cat ${CONFIG_FILE} diff --git a/influxdb/docker/types.db b/influxdb/docker/types.db deleted file mode 100644 index 38fb546..0000000 --- a/influxdb/docker/types.db +++ /dev/null @@ -1,241 +0,0 @@ -absolute value:ABSOLUTE:0:U -apache_bytes value:DERIVE:0:U -apache_connections value:GAUGE:0:65535 -apache_idle_workers value:GAUGE:0:65535 -apache_requests value:DERIVE:0:U -apache_scoreboard value:GAUGE:0:65535 -ath_nodes value:GAUGE:0:65535 -ath_stat value:DERIVE:0:U -backends value:GAUGE:0:65535 -bitrate value:GAUGE:0:4294967295 -blocked_clients value:GAUGE:0:U -bytes value:GAUGE:0:U -cache_eviction value:DERIVE:0:U -cache_operation value:DERIVE:0:U -cache_ratio value:GAUGE:0:100 -cache_result value:DERIVE:0:U -cache_size value:GAUGE:0:U -ceph_bytes value:GAUGE:U:U -ceph_latency value:GAUGE:U:U -ceph_rate value:DERIVE:0:U -changes_since_last_save value:GAUGE:0:U -charge value:GAUGE:0:U -compression_ratio value:GAUGE:0:2 -compression uncompressed:DERIVE:0:U, compressed:DERIVE:0:U -connections value:DERIVE:0:U -conntrack value:GAUGE:0:4294967295 -contextswitch value:DERIVE:0:U -count value:GAUGE:0:U -counter value:COUNTER:U:U -cpufreq value:GAUGE:0:U -cpu value:DERIVE:0:U -current_connections value:GAUGE:0:U -current_sessions value:GAUGE:0:U -current value:GAUGE:U:U -delay value:GAUGE:-1000000:1000000 -derive value:DERIVE:0:U -df_complex value:GAUGE:0:U -df_inodes value:GAUGE:0:U -df used:GAUGE:0:1125899906842623, free:GAUGE:0:1125899906842623 -disk_latency read:GAUGE:0:U, write:GAUGE:0:U -disk_merged read:DERIVE:0:U, write:DERIVE:0:U -disk_octets read:DERIVE:0:U, write:DERIVE:0:U -disk_ops_complex value:DERIVE:0:U -disk_ops read:DERIVE:0:U, write:DERIVE:0:U -disk_time read:DERIVE:0:U, write:DERIVE:0:U -disk_io_time io_time:DERIVE:0:U, weighted_io_time:DERIVE:0:U -dns_answer value:DERIVE:0:U -dns_notify value:DERIVE:0:U -dns_octets queries:DERIVE:0:U, responses:DERIVE:0:U -dns_opcode value:DERIVE:0:U -dns_qtype_cached value:GAUGE:0:4294967295 -dns_qtype value:DERIVE:0:U -dns_query value:DERIVE:0:U -dns_question value:DERIVE:0:U -dns_rcode value:DERIVE:0:U -dns_reject value:DERIVE:0:U -dns_request value:DERIVE:0:U -dns_resolver value:DERIVE:0:U -dns_response value:DERIVE:0:U -dns_transfer value:DERIVE:0:U -dns_update value:DERIVE:0:U -dns_zops value:DERIVE:0:U -drbd_resource value:DERIVE:0:U -duration seconds:GAUGE:0:U -email_check value:GAUGE:0:U -email_count value:GAUGE:0:U -email_size value:GAUGE:0:U -entropy value:GAUGE:0:4294967295 -expired_keys value:GAUGE:0:U -fanspeed value:GAUGE:0:U -file_handles value:GAUGE:0:U -file_size value:GAUGE:0:U -files value:GAUGE:0:U -flow value:GAUGE:0:U -fork_rate value:DERIVE:0:U -frequency_offset value:GAUGE:-1000000:1000000 -frequency value:GAUGE:0:U -fscache_stat value:DERIVE:0:U -gauge value:GAUGE:U:U -hash_collisions value:DERIVE:0:U -http_request_methods value:DERIVE:0:U -http_requests value:DERIVE:0:U -http_response_codes value:DERIVE:0:U -humidity value:GAUGE:0:100 -if_collisions value:DERIVE:0:U -if_dropped rx:DERIVE:0:U, tx:DERIVE:0:U -if_errors rx:DERIVE:0:U, tx:DERIVE:0:U -if_multicast value:DERIVE:0:U -if_octets rx:DERIVE:0:U, tx:DERIVE:0:U -if_packets rx:DERIVE:0:U, tx:DERIVE:0:U -if_rx_errors value:DERIVE:0:U -if_rx_octets value:DERIVE:0:U -if_tx_errors value:DERIVE:0:U -if_tx_octets value:DERIVE:0:U -invocations value:DERIVE:0:U -io_octets rx:DERIVE:0:U, tx:DERIVE:0:U -io_packets rx:DERIVE:0:U, tx:DERIVE:0:U -ipt_bytes value:DERIVE:0:U -ipt_packets value:DERIVE:0:U -irq value:DERIVE:0:U -latency value:GAUGE:0:U -links value:GAUGE:0:U -load shortterm:GAUGE:0:5000, midterm:GAUGE:0:5000, longterm:GAUGE:0:5000 -md_disks value:GAUGE:0:U -memcached_command value:DERIVE:0:U -memcached_connections value:GAUGE:0:U -memcached_items value:GAUGE:0:U -memcached_octets rx:DERIVE:0:U, tx:DERIVE:0:U -memcached_ops value:DERIVE:0:U -memory value:GAUGE:0:281474976710656 -memory_lua value:GAUGE:0:281474976710656 -multimeter value:GAUGE:U:U -mutex_operations value:DERIVE:0:U -mysql_commands value:DERIVE:0:U -mysql_handler value:DERIVE:0:U -mysql_locks value:DERIVE:0:U -mysql_log_position value:DERIVE:0:U -mysql_octets rx:DERIVE:0:U, tx:DERIVE:0:U -mysql_bpool_pages value:GAUGE:0:U -mysql_bpool_bytes value:GAUGE:0:U -mysql_bpool_counters value:DERIVE:0:U -mysql_innodb_data value:DERIVE:0:U -mysql_innodb_dblwr value:DERIVE:0:U -mysql_innodb_log value:DERIVE:0:U -mysql_innodb_pages value:DERIVE:0:U -mysql_innodb_row_lock value:DERIVE:0:U -mysql_innodb_rows value:DERIVE:0:U -mysql_select value:DERIVE:0:U -mysql_sort value:DERIVE:0:U -nfs_procedure value:DERIVE:0:U -nginx_connections value:GAUGE:0:U -nginx_requests value:DERIVE:0:U -node_octets rx:DERIVE:0:U, tx:DERIVE:0:U -node_rssi value:GAUGE:0:255 -node_stat value:DERIVE:0:U -node_tx_rate value:GAUGE:0:127 -objects value:GAUGE:0:U -operations value:DERIVE:0:U -packets value:DERIVE:0:U -pending_operations value:GAUGE:0:U -percent value:GAUGE:0:100.1 -percent_bytes value:GAUGE:0:100.1 -percent_inodes value:GAUGE:0:100.1 -pf_counters value:DERIVE:0:U -pf_limits value:DERIVE:0:U -pf_source value:DERIVE:0:U -pf_states value:GAUGE:0:U -pf_state value:DERIVE:0:U -pg_blks value:DERIVE:0:U -pg_db_size value:GAUGE:0:U -pg_n_tup_c value:DERIVE:0:U -pg_n_tup_g value:GAUGE:0:U -pg_numbackends value:GAUGE:0:U -pg_scan value:DERIVE:0:U -pg_xact value:DERIVE:0:U -ping_droprate value:GAUGE:0:100 -ping_stddev value:GAUGE:0:65535 -ping value:GAUGE:0:65535 -players value:GAUGE:0:1000000 -power value:GAUGE:0:U -pressure value:GAUGE:0:U -protocol_counter value:DERIVE:0:U -ps_code value:GAUGE:0:9223372036854775807 -ps_count processes:GAUGE:0:1000000, threads:GAUGE:0:1000000 -ps_cputime user:DERIVE:0:U, syst:DERIVE:0:U -ps_data value:GAUGE:0:9223372036854775807 -ps_disk_octets read:DERIVE:0:U, write:DERIVE:0:U -ps_disk_ops read:DERIVE:0:U, write:DERIVE:0:U -ps_pagefaults minflt:DERIVE:0:U, majflt:DERIVE:0:U -ps_rss value:GAUGE:0:9223372036854775807 -ps_stacksize value:GAUGE:0:9223372036854775807 -ps_state value:GAUGE:0:65535 -ps_vm value:GAUGE:0:9223372036854775807 -pubsub value:GAUGE:0:U -queue_length value:GAUGE:0:U -records value:GAUGE:0:U -requests value:GAUGE:0:U -response_time value:GAUGE:0:U -response_code value:GAUGE:0:U -route_etx value:GAUGE:0:U -route_metric value:GAUGE:0:U -routes value:GAUGE:0:U -segments value:GAUGE:0:65535 -serial_octets rx:DERIVE:0:U, tx:DERIVE:0:U -signal_noise value:GAUGE:U:0 -signal_power value:GAUGE:U:0 -signal_quality value:GAUGE:0:U -smart_poweron value:GAUGE:0:U -smart_powercycles value:GAUGE:0:U -smart_badsectors value:GAUGE:0:U -smart_temperature value:GAUGE:-300:300 -smart_attribute current:GAUGE:0:255, worst:GAUGE:0:255, threshold:GAUGE:0:255, pretty:GAUGE:0:U -snr value:GAUGE:0:U -spam_check value:GAUGE:0:U -spam_score value:GAUGE:U:U -spl value:GAUGE:U:U -swap_io value:DERIVE:0:U -swap value:GAUGE:0:1099511627776 -tcp_connections value:GAUGE:0:4294967295 -temperature value:GAUGE:U:U -threads value:GAUGE:0:U -time_dispersion value:GAUGE:-1000000:1000000 -timeleft value:GAUGE:0:U -time_offset value:GAUGE:-1000000:1000000 -total_bytes value:DERIVE:0:U -total_connections value:DERIVE:0:U -total_objects value:DERIVE:0:U -total_operations value:DERIVE:0:U -total_requests value:DERIVE:0:U -total_sessions value:DERIVE:0:U -total_threads value:DERIVE:0:U -total_time_in_ms value:DERIVE:0:U -total_values value:DERIVE:0:U -uptime value:GAUGE:0:4294967295 -users value:GAUGE:0:65535 -vcl value:GAUGE:0:65535 -vcpu value:GAUGE:0:U -virt_cpu_total value:DERIVE:0:U -virt_vcpu value:DERIVE:0:U -vmpage_action value:DERIVE:0:U -vmpage_faults minflt:DERIVE:0:U, majflt:DERIVE:0:U -vmpage_io in:DERIVE:0:U, out:DERIVE:0:U -vmpage_number value:GAUGE:0:4294967295 -volatile_changes value:GAUGE:0:U -voltage_threshold value:GAUGE:U:U, threshold:GAUGE:U:U -voltage value:GAUGE:U:U -vs_memory value:GAUGE:0:9223372036854775807 -vs_processes value:GAUGE:0:65535 -vs_threads value:GAUGE:0:65535 - -# -# Legacy types -# (required for the v5 upgrade target) -# -arc_counts demand_data:COUNTER:0:U, demand_metadata:COUNTER:0:U, prefetch_data:COUNTER:0:U, prefetch_metadata:COUNTER:0:U -arc_l2_bytes read:COUNTER:0:U, write:COUNTER:0:U -arc_l2_size value:GAUGE:0:U -arc_ratio value:GAUGE:0:U -arc_size current:GAUGE:0:U, target:GAUGE:0:U, minlimit:GAUGE:0:U, maxlimit:GAUGE:0:U -mysql_qcache hits:COUNTER:0:U, inserts:COUNTER:0:U, not_cached:COUNTER:0:U, lowmem_prunes:COUNTER:0:U, queries_in_cache:GAUGE:0:U -mysql_threads running:GAUGE:0:U, connected:GAUGE:0:U, cached:GAUGE:0:U, created:COUNTER:0:U diff --git a/influxdb/upgrade_0-9_1-1/Dockerfile b/influxdb/upgrade_0-9_1-1/Dockerfile new file mode 100644 index 0000000..86e00a5 --- /dev/null +++ b/influxdb/upgrade_0-9_1-1/Dockerfile @@ -0,0 +1,16 @@ +FROM phusion/baseimage:latest +MAINTAINER Nikita Kovalev + +# Install InfluxDB +RUN curl -s -o /tmp/influxdb_latest_amd64.deb https://dl.influxdata.com/influxdb/releases/influxdb_0.11.1-1_amd64.deb && \ + dpkg -i /tmp/influxdb_latest_amd64.deb && \ + rm /tmp/influxdb_latest_amd64.deb && \ + rm -rf /var/lib/apt/lists/* + +ADD config.toml /config/config.toml + +RUN mkdir -p /etc/service/influxdb + +VOLUME ["/data"] + +CMD ["/sbin/my_init"] diff --git a/influxdb/upgrade_0-9_1-1/README.md b/influxdb/upgrade_0-9_1-1/README.md new file mode 100644 index 0000000..a9304d2 --- /dev/null +++ b/influxdb/upgrade_0-9_1-1/README.md @@ -0,0 +1,35 @@ +# Upgrade from influxdb 0.9 (ambient7 v0.1/v0.2) to influxdb 1.1 (ambient7 v0.3) + +* stop `ambient7-influxdb` container (`docker stop ambient7-influxdb`) +* backup all data at host machine (recommended) +* build upgrade container - `cd upgrade_0-9_1-1; ./influxdb_upgrade_build.sh` +* setup upgrade container - `cd upgrade_0-9_1-1; ./influxdb_upgrade_setup.sh /data` + with the same data dir as used before in ambient7-influxdb +* start bash session `docker exec -ti ambient7-influxdb-upgrade /bin/bash` +``` +# convert shards +mkdir /data/backup +influx_tsm -backup /data/backup -parallel /data/db +# confirm with Y + +# convert meta data +exec /usr/bin/influxd -config=/config/config.toml & +# press enter +mkdir -p /data/backup/meta +influxd backup /data/backup/meta/ +killall influxd +exit +``` +* stop & remove upgrade container (`docker rm -f ambient7-influxdb-upgrade`) +* remove old ambient7-influxdb container (`docker rm ambient7-influxdb`) +* build new influxdb image (`cd docker; ./influxdb_build.sh`) +* setup new influxdb image with the same data dir and password (`cd docker; ./influxdb_setup.sh /data password`) +* start bash session `docker exec -ti ambient7-influxdb /bin/bash` +``` +# stop influxdb +sv stop influxdb +influxd restore -metadir=/data/meta /data/backup/meta/ +exit +``` +* restart docker container (`docker restart ambient7-influxdb`) +* check logs `docker logs ambient7-influxdb` diff --git a/influxdb/upgrade_0-9_1-1/config.toml b/influxdb/upgrade_0-9_1-1/config.toml new file mode 100644 index 0000000..be0b1c0 --- /dev/null +++ b/influxdb/upgrade_0-9_1-1/config.toml @@ -0,0 +1,27 @@ +reporting-disabled = false + +hostname = "localhost" + +[meta] + dir = "/data/meta" + +[data] + dir = "/data/db" + wal-dir = "/data/wal" + + +[admin] + enabled = true + bind-address = ":8083" + https-enabled = false + +[http] + enabled = true + bind-address = ":8086" + auth-enabled = true + log-enabled = true + https-enabled = false + +[continuous_queries] + log-enabled = true + enabled = true diff --git a/influxdb/upgrade_0-9_1-1/influxdb_upgrade_build.sh b/influxdb/upgrade_0-9_1-1/influxdb_upgrade_build.sh new file mode 100755 index 0000000..3c31c90 --- /dev/null +++ b/influxdb/upgrade_0-9_1-1/influxdb_upgrade_build.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# +# Usage: +# cd ambient7/influxdb/upgrade_0-9_1-1 +# ./influxdb_build.sh +# +docker build --tag ambient7/influxdb_upgrade:0.1 ./ diff --git a/influxdb/upgrade_0-9_1-1/influxdb_upgrade_setup.sh b/influxdb/upgrade_0-9_1-1/influxdb_upgrade_setup.sh new file mode 100755 index 0000000..99c3159 --- /dev/null +++ b/influxdb/upgrade_0-9_1-1/influxdb_upgrade_setup.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# +# Usage: +# cd ambient7/influxdb/upgrade_0-9_1-1 +# ./influxdb_upgrade_setup.sh DATADIR +# +DATADIR="$1" + +if [[ -z "$DATADIR" ]];then + echo "Usage: `basename $0` DATADIR" + exit 1 +fi + +docker run -d \ + -v "${DATADIR}:/data" \ + -e ADMIN_USER="root" \ + --name=ambient7-influxdb-upgrade \ + ambient7/influxdb_upgrade:0.1