apiVersion: influxdata.com/v2alpha1 kind: Label metadata: name: adoring-golick-276003 spec: color: '#FFD255' name: Game Data --- apiVersion: influxdata.com/v2alpha1 kind: Bucket metadata: name: modest-nightingale-276001 spec: associations: - kind: Label name: adoring-golick-276003 name: apexlegends --- apiVersion: influxdata.com/v2alpha1 kind: Dashboard metadata: name: wondrous-mccarthy-276001 spec: associations: - kind: Label name: adoring-golick-276003 charts: - height: 6 kind: Markdown name: Name this Cell note: |- ![](https://i.imgur.com/dQ0YK2k.png) ![](https://gamepedia.cursecdn.com/apexlegends_gamepedia_en/2/20/Badge_Apex_Predator.png?version=ca48fdedb4bdd43ecc4fe3daeead452e) width: 2 - axes: - base: "10" name: x scale: linear - base: "10" name: y scale: linear colors: - hex: '#32B08C' name: viridian type: text decimalPlaces: 0 height: 3 kind: Single_Stat_Plus_Line name: Kills position: overlaid queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_totals") |> filter(fn: (r) => r["_field"] == "kills_value") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean") suffix: ' Kills' width: 4 xCol: _time yCol: _value yPos: 6 - colors: - hex: '#4ED8A0' name: rainforest type: text decimalPlaces: 2 height: 1 kind: Single_Stat name: Player Name queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_global") |> filter(fn: (r) => r["_field"] == "name") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 2 - colors: - hex: '#4ED8A0' name: rainforest type: text decimalPlaces: 0 height: 1 kind: Single_Stat name: Platform queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_global") |> filter(fn: (r) => r["_field"] == "platform") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 2 yPos: 1 - colors: - hex: '#513CC6' name: planet type: background decimalPlaces: 0 height: 1 kind: Single_Stat name: Level queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_global") |> filter(fn: (r) => r["_field"] == "level") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean") width: 2 xPos: 2 yPos: 2 - colors: - hex: '#00C9FF' name: laser type: background - hex: '#DC4E58' name: fire type: background value: 5 - hex: '#F95F53' name: curacao type: background value: 25 - hex: '#7CE490' name: honeydew type: background value: 50 - hex: '#32B08C' name: viridian type: background value: 111 decimalPlaces: 2 height: 1 kind: Single_Stat name: Current BattlePass Level queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_global_battlepass") |> filter(fn: (r) => r["_field"] == "level") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 2 yPos: 3 - colors: - hex: '#FFB94A' name: pineapple type: background - hex: '#292933' name: castle type: background value: 60 decimalPlaces: 2 height: 1 kind: Single_Stat name: Current Ranked Level queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_global_rank") |> filter(fn: (r) => r["_field"] == "rankName") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 2 yPos: 4 - colors: - hex: '#F48D38' name: tiger type: background - hex: '#F48D38' name: tiger type: background - hex: '#383846' name: pepper type: background value: 1200 - hex: '#FFB94A' name: pineapple type: background value: 2800 - hex: '#4591ED' name: ocean type: background value: 4800 - hex: '#7A65F2' name: star type: background value: 7200 - hex: '#DC4E58' name: fire type: background value: 10000 decimalPlaces: 0 height: 1 kind: Single_Stat name: Ranked Points queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_global") |> filter(fn: (r) => r["_field"] == "rankScore_value" or r["_field"] == "rank_rankScore") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 2 yPos: 5 - colors: - hex: '#32B08C' name: viridian type: background decimalPlaces: 0 height: 1 kind: Single_Stat name: Games Played queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_global" or r["_measurement"] == "apexlegends_totals") |> filter(fn: (r) => r["_field"] == "winning_kills_value" or r["_field"] == "games_played_value") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean") width: 2 xPos: 4 - colors: - hex: '#32B08C' name: viridian type: min - hex: '#BF3D5E' name: ruby type: max value: 500 decimalPlaces: 0 height: 3 kind: Gauge name: Player Level queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_global") |> filter(fn: (r) => r["_field"] == "level") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 4 yPos: 1 - axes: - base: "10" name: x scale: linear - name: y scale: linear colors: - hex: '#FD7A5D' name: Delorean type: scale - hex: '#5F1CF2' name: Delorean type: scale - hex: '#4CE09A' name: Delorean type: scale geom: line height: 5 hoverDimension: y kind: Xy name: Kills Per Legend position: stacked queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_legend_bloodhound" or r["_measurement"] == "apexlegends_legend_bangalore" or r["_measurement"] == "apexlegends_legend_loba" or r["_measurement"] == "apexlegends_legend_mirage" or r["_measurement"] == "apexlegends_legend_wraith" or r["_measurement"] == "apexlegends_legend_pathfinder" or r["_measurement"] == "apexlegends_legend_octane") |> filter(fn: (r) => r["key"] == "kills") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 6 xCol: _time xPos: 4 yCol: _value (number) yPos: 4 - colors: - hex: '#F48D38' name: tiger type: background - hex: '#7CE490' name: honeydew type: background value: 1 decimalPlaces: 1 height: 1 kind: Single_Stat name: Kill/Death Ratio queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_totals") |> filter(fn: (r) => r["_field"] == "kd_value") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 6 - colors: - hex: '#513CC6' name: planet type: min - hex: '#F95F53' name: curacao type: max value: 100000 decimalPlaces: 0 height: 3 kind: Gauge name: Total Damage Dealt queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_totals") |> filter(fn: (r) => r["_field"] == "damage_value") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 6 yPos: 1 - colors: - hex: '#7CE490' name: honeydew type: background - hex: '#BF3D5E' name: ruby type: background decimalPlaces: 0 height: 1 kind: Single_Stat name: Is Online queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_realtime") |> filter(fn: (r) => r["_field"] == "isOnline") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 8 - axes: - base: "10" name: x scale: linear - base: "10" name: y scale: linear colors: - hex: '#DA6FF1' name: Ectoplasm type: scale - hex: '#00717A' name: Ectoplasm type: scale - hex: '#ACFF76' name: Ectoplasm type: scale - hex: '#513CC6' name: planet type: text decimalPlaces: 0 height: 3 kind: Single_Stat_Plus_Line name: Season 5 Kills position: overlaid queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_totals") |> filter(fn: (r) => r["_field"] == "kills_season_5_value") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xCol: _time xPos: 8 yCol: _value yPos: 1 - colors: - hex: '#FFB94A' name: pineapple type: background decimalPlaces: 0 height: 1 kind: Single_Stat name: Current Legend queries: - query: |- from(bucket: "apexlegends") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "apexlegends_realtime") |> filter(fn: (r) => r["_field"] == "selectedLegend") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> yield(name: "last") width: 2 xPos: 10 description: API Data from https://mozambiquehe.re name: Apex Legends --- apiVersion: influxdata.com/v2alpha1 kind: Telegraf metadata: name: apex-legends-telegraf spec: name: Apex Legends Telegraf associations: - kind: Label name: adoring-golick-276003 description: Apex Legends API Input config: | # Pull in global stats [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_global" tagexclude = ["url", "host"] data_format = "json" json_query = "global" fielddrop = ["bans", "rank", "battlepass"] json_string_fields = ["name", "platform"] # Pull in bans stats [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_global_bans" tagexclude = ["url", "host"] data_format = "json" json_query = "global.bans" json_string_fields = ["last_banReason"] # Pull in rank stats [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_global_rank" tagexclude = ["url", "host"] data_format = "json" json_query = "global.rank" json_string_fields = ["rankName", "rankImg", "rankedSeason"] # Pull in battlepass stats [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_global_battlepass" tagexclude = ["url", "host"] data_format = "json" json_query = "global.battlepass" json_string_fields = ["level"] # Pull in realtime player stats [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_realtime" tagexclude = ["url", "host"] data_format = "json" json_query = "realtime" tag_keys = ["key"] json_string_fields = ["lobbyState", "selectedLegend"] # Pull in total player stats [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_totals" tagexclude = ["url", "host"] data_format = "json" json_query = "total" tag_keys = ["name"] json_string_fields = ["name"] # Pull in the stats for Bangalore [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_bangalore" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Bangalore.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Bloodhound [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_bloodhound" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Bloodhound.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Lifeline [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_lifeline" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Lifeline.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Caustic [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_caustic" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Caustic.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Gibraltar [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_gibraltar" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Gibraltar.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Mirage [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_mirage" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Mirage.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Pathfinder [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_pathfinder" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Pathfinder.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Wraith [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_wraith" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Wraith.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Octane [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_octane" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Octane.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Wattson [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_wattson" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Wattson.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Crypto [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_crypto" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Crypto.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Revenant [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_revenant" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Revenant.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] # Pull in the stats for Loba [[inputs.file]] files = ["/etc/telegraf/apex_legends.json"] name_override = "apexlegends_legend_loba" tagexclude = ["url", "host"] data_format = "json" json_query = "legends.all.Loba.data" tag_keys = ["key"] json_string_fields = ["name", "icon", "banner"] [[outputs.influxdb_v2]] ## The URLs of the InfluxDB cluster nodes. ## ## Multiple URLs can be specified for a single cluster, only ONE of the ## urls will be written to each interval. ## urls exp: http://127.0.0.1:9999 urls = ["$INFLUX_HOST"] ## Token for authentication. token = "$INFLUX_TOKEN" ## Organization is the name of the organization you wish to write to; must exist. organization = "$INFLUX_ORG" ## Destination bucket to write into. bucket = "apexlegends"