SlideShare a Scribd company logo
1 of 30
Miroslav Malecha / Product Manager
Bonitoo.io
InfluxDB
Client Libraries
and Applications
© 2019 InfluxData. All rights reserved. 2
SW Engineering Company
● InfluxData consulting partner
Delivered Client Libraries and other deliverables
● End-to-end R&D Services (architecture, agile development,
documentation, support, hosting, operation)
● Strong team of professionals (development for SaaS Startups,
Enterprise Software, Mobile applications)
Technologies
● Java, JS, C#, Python, SQL, ML
https://github.com/bonitoo-io
© 2019 InfluxData. All rights reserved. 3
● Client Libraries
○ Java & Spring integration
○ C#
○ Python
● Embedded analytics
Agenda
InfluxDB Client Libraries
© 2019 InfluxData. All rights reserved. 5
Clustered
InfluxDB Data Flow
InfluxDB 2
Time Series Database
Telegraf
Agent for Collecting and
Reporting Metrics and
Events
210+ plugins
System
Stats
Databases
Networking
Message
Queues
Apps
Apps/IoT
Apps/
IoT
InfluxDB
Client
Java
.NET
Python
HTTP GET/POST
1.
2.
3.
© 2019 InfluxData. All rights reserved. 6
Benefits of Client Libraries
● Performance/Reliability
○ Client write ~50 times faster* than HTTP POST approach
○ Batching, Jittering, Retriable, Backpressure
● Customization & Easy to use
○ Interface vs study format and build API messages manually
○ Error handling - HTTP codes vs standard exceptions and listeners
○ 3rd party application monitoring systems integration (Micrometer.io)
● Management API Support
○ Configure InfluxData Cloud
● Compatibility
○ Stable libraries interface developed by InfluxData
*) InfluxDB Java Client, 2 CPUs, 16GB RAM, 2.000 threads, 100 lines per write for both methods
InfluxDB 2
Java Client Library
© 2019 InfluxData. All rights reserved. 8
Java Client Library
NEW Client for InfluxDB 2 (replacement of Java Client for InfluxDB 1.x)
● Github repo: https://github.com/influxdata/influxdb-client-java
● Capabilities: Query, Write, Management, Security, Reactive streams
● Uses RxJava library (automated Batching, Jittering, Retriable, Backpressure)
● Improved data types support
Extensions
● Support Kotlin, Scala (Akka Streams)
● Flux queries support for InfluxDB 1.7+
● Flux-DSL query builder (Flux language in Java code)
Replaces custom fast ingress solutions such as Hystrix, etc.
Flux sampleFlux = Flux.from("telegraf")
.range(-1L, ChronoUnit.DAYS)
.filter(
Restrictions.and(
Restrictions.measurement().equal("cpu"),
Restrictions.field().equal("usage_system"))
)
.sample(5, 1);
© 2019 InfluxData. All rights reserved. 9
Write API Configuration
Configuration parameters similar to Telegraf
InfluxDBClient client = InfluxDBClientFactory.create("http://localhost:9999", "my-token".toCharArray());
WriteApi writeApi = client.getWriteApi(WriteOptions.builder()
.batchSize(5000)
.flushInterval(1000)
.jitterInterval(1000)
.bufferLimit(10000)
.retryInterval(5000)
.backpressureStrategy(BackpressureOverflowStrategy.DROP_OLDEST)
.build());
© 2019 InfluxData. All rights reserved. 10
Write Data
Write by POJO (annotated measures)
Write By Point
Write Line Protocol
Temperature temperature = new Temperature();
temperature.setLocation("south");
temperature.setValue(62D);
temperature.setTime(Instant.now());
writeApi.writeMeasurement("my-bucket", "my-org", WritePrecision.NS, temperature);
Point point = Point.measurement("temperature")
.addTag("location","west")
.addField("value", 55D)
.time(Instant.now().toEpochMilli(), WritePrecision.NS);
writeApi.writePoint("my-bucket", "my-org", point);
String record = "temperature,location=north value=60.0";
writeApi.writeRecord("my-bucket", "my-org", WritePrecision.NS, record);
© 2019 InfluxData. All rights reserved. 11
Query InfluxDB
Asynchronous querying using Flux
InfluxDBClientOptions clientOptions = InfluxDBClientOptions.builder()
.url("http://localhost:9999").authenticate Token("my-token".toCharArray()).org("my-org")
.build();
InfluxDBClient client = InfluxDBClientFactory.create(clientOptions);
String fluxQuery = "from(bucket: "my-bucket")n"
+ " |> range(start: -1d)"
+ " |> filter(fn: (r) => (r._measurement == "cpu" and r._field == "usage_system"))"
+ " |> sample(n: 5, pos: 1)";
QueryApi queryApi = client.getQueryApi();
queryApi.query(
fluxQuery, (cancellable, record) -> {
// process the flux query result record
System.out.println(
record.getTime() + ": " + record.getValue());
}, error -> {
// error handling while processing result
error.printStackTrace();
}, () -> {
// on complete
System.out.println("Query completed");
});
© 2019 InfluxData. All rights reserved. 12
Advanced Configuration
Set organization, bucket, permissions and authorization
InfluxDBClient influxDBClient = InfluxDBClientFactory.create("http://localhost:9999", "my-
token".toCharArray());
Organization medicalGMBH = influxDBClient.getOrganizationsApi().createOrganization("Medical Corp");
Bucket temperatureBucket = influxDBClient.getBucketsApi().createBucket("temperature-sensors", medicalGMBH);
PermissionResource resource = new PermissionResource();
resource.setId(temperatureBucket.getId());
resource.setOrgID(medicalGMBH.getId());
resource.setType(PermissionResource.TypeEnum.BUCKETS);
Permission readBucket = new Permission();
readBucket.setResource(resource);
readBucket.setAction(Permission.ActionEnum.READ);
Permission writeBucket = new Permission();
writeBucket.setResource(resource);
writeBucket.setAction(Permission.ActionEnum.WRITE);
Authorization authorization = influxDBClient.getAuthorizationsApi()
.createAuthorization(medicalGMBH, Arrays.asList(readBucket, writeBucket));
String token = authorization.getToken();
System.out.println("The token to write to temperature-sensors bucket " + token);
Spring Integration
© 2019 InfluxData. All rights reserved. 14
InfluxDB integrated into Spring framework
Application framework for Java
Supported autoconfiguration based on class path presence
1) Add Maven dependency
Package com.influxdb.spring.influx - Auto configuration, Health check, Metrics exporter
2) Define Client configuration (application.properties)
<dependency>
<groupId>org.influxdata</groupId>
<artifactId>influxdb-spring</artifactId>
<version>${influxdb-spring.version}</version>
</dependency>
spring.influx2.url=http://localhost:9999
spring.influx2.org=03ea32773f1d0000
spring.influx2.bucket=my-bucket
spring.influx2.token=my-token-123
spring.influx2.username=my-user
© 2019 InfluxData. All rights reserved. 15
Monitor Spring Application using Micrometer.io
Micrometer: metrics collection library included in Spring
● Provides timers, gauges, counters, distribution summaries in your JVM application
● Preconfigured metrics support
1) Define new dependency into the pom.xml
2) Add properties to the application.properties
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-influx2</artifactId>
<version>${micrometer.version}</version>
</dependency>
management.metrics.export.influx2.enabled=true
management.metrics.export.influx2.uri=http://localhost:9999/api/v2
management.metrics.export.influx2.org=my-org
management.metrics.export.influx2.bucket=micrometer-bucket
management.metrics.export.influx2.autoCreateBucket=false
management.metrics.export.influx2.token=my-token-123
management.metrics.export.influx2.step=10s
© 2019 InfluxData. All rights reserved. 16
InfluxDB Visualizing APM Data
InfluxDB 2
C# Client Library
© 2019 InfluxData. All rights reserved. 18
C# Client Library
● NEW since InfluxDB 2
● Github Repository: https://github.com/influxdata/influxdb-client-csharp
● Same API as the Java Client
● Compatible with Windows IoT Core
● Query API
● Write API - Line Protocol, Data Point, POCO
● Management API - Sources, buckets, tasks, permissions, health check
● Flux queries support for InfluxDB 1.7+
© 2019 InfluxData. All rights reserved. 19
Write Data
influxDB = InfluxDBClientFactory.Create("http://localhost:9999", authorization.Token.ToCharArray());
var writeOptions = WriteOptions
.CreateNew()
.BatchSize(5000)
.FlushInterval(1000)
.JitterInterval(1000)
.RetryInterval(5000)
.Build();
using (var writeClient = influxDB.GetWriteApi(writeOptions))
{
// Write by POCO
var temperature = new Temperature {Location = "south", Value = 62D, Time = DateTime.UtcNow};
writeClient.WriteMeasurement("temperature-sensors", medicalGMBH.Id, WritePrecision.Ns, temperature);
// Write by Point
var point = PointData.Measurement("temperature")
.Tag("location", "west")
.Field("value", 55D)
.Timestamp(DateTime.UtcNow.AddSeconds(-10), WritePrecision.Ns);
writeClient.WritePoint("temperature-sensors", medicalGMBH.Id, point);
// Write by LineProtocol
var record = "temperature,location=north value=60.0";
writeClient.WriteRecord("temperature-sensors", medicalGMBH.Id, WritePrecision.Ns, record);
writeClient.Flush();
}
© 2019 InfluxData. All rights reserved. 20
Query InfluxDB
var options = InfluxDBClientOptions.Builder.CreateNew()
.Url("http://localhost:9999").Org("my-org")
.AuthenticateToken("my-token".ToCharArray()).Build();
var client = InfluxDBClientFactory.Create(options);
var fluxQuery = "from(bucket: "my-bucket")n"
+ " |> range(start: -1d)"
+ " |> filter(fn: (r) => (r._measurement == "cpu" and r._field == "usage_system"))"
+ " |> sample(n: 5, pos: 1)";
var queryApi = client.GetQueryApi();
await queryApi.Query<Cpu>(fluxQuery,
(cancellable, cpu) => // process the flux query records
Console.WriteLine(cpu.ToString());
},
(error) =>
{ // error handling while processing result
Console.WriteLine(error.ToString());
},
() =>
{ // on complete
Console.WriteLine("Query completed");
}
);
InfluxDB 2
Python Client Library (Alpha)
© 2019 InfluxData. All rights reserved. 22
● NEW since InfluxDB 2
● Github Repository: https://github.com/influxdata/influxdb-client-python
● Same API as the Java Client
● Capabilities: Query, Write, Management, Security
● Uses RxPY library
Python Library
© 2019 InfluxData. All rights reserved. 23
Write
import codecs
from datetime import datetime
from influxdb_client import WritePrecision, InfluxDBClient, Point
client = InfluxDBClient(url="http://localhost:9999", token="my-token", org="my-org")
write_api = client.write_api()
p = Point("my_measurement").tag("location", "Prague").field("temperature",25.3).time(datetime.now(),
WritePrecision.MS)
write_api.write(org="my-org", bucket="my-bucket", record=p)
© 2019 InfluxData. All rights reserved. 24
Query
import codecs
from datetime import datetime
from influxdb_client import WritePrecision, InfluxDBClient, Point
client = InfluxDBClient(url="http://localhost:9999", token="my-token", org="my-org")
query_api = client.query_api()
query = '''
from(bucket:"my-bucket")
|> range(start: -1m)
|> filter(fn: (r) => (r._measurement == "cpu" and r._field == "usage_system"))
'''
tables = query_api.query(query)
for table in tables:
print(table)
for record in table.records:
print(record.values)
Embedded Analytics with InfluxDB
© 2019 InfluxData. All rights reserved. 26
Demo Application
Github repo: https://github.com/bonitoo-io/influxdata-iot-petstore
Demo Application
InfluxDB 2 Java Client
InfluxDB 2
Application Data
Spring Services
Vaadin Web Framework
+Vaadin Charts Library
OpenAPI
swagger generated from Java using SpringFox
Micrometer.io
push internal app metric to InfluxDB
App MetricsData
InfluxDB 2
Application Monitoring
micrometer-registry-influx
© 2019 InfluxData. All rights reserved. 27
Predefined UI
● Filters
● Responsive - Mobile devices
● Various chart options - Vaadin
End Users UI
© 2019 InfluxData. All rights reserved. 28
Data Analyst View
Custom Data Explorer
● Visual Flux Builder
● Generates internally Flux queries
● Visualises data
from(bucket: “my-bucket”)
|> range (start: -2d,stop: now() )
|> filter(fn: (r) => r._measurement == “air” )
|> filter(fn: (r) => r._field == “temperature” )
|> filter(fn: (r) => r.location == “Prerov” )
Generated Flux Query
© 2019 InfluxData. All rights reserved. 29
IoT On Device Display
Realtime values
internal sensors data
Aggregated values
Using Flux from InfluxDB 2
Github repo: https://github.com/bonitoo-io/BuildAzure.IoT.Adafruit.BME280
© 2019 InfluxData. All rights reserved. 30
Summary & THANK YOU
New Client Libraries
● For InfluxDB 2
● Java, C#, Python (alpha), Scala and Kotlin Support
○ Query, Write, Management API
○ High performance/reliability write and query
○ Easy to use
● Github repo: https://github.com/influxdata
Embedded analytics
● InfluxDB Client libraries (Query API)
● Demo github repo: https://github.com/bonitoo-io/influxdata-iot-petstore

More Related Content

What's hot

valutazione del rischio da movimentazione manuale dei carichi
valutazione del rischio da movimentazione manuale dei carichivalutazione del rischio da movimentazione manuale dei carichi
valutazione del rischio da movimentazione manuale dei carichiCorrado Cigaina
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingMichelle Holley
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch어형 이
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker ComposeAjeet Singh Raina
 
Integrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationIntegrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationAndrew Rota
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basicsSourabh Saxena
 
Podman Overview and internals.pdf
Podman Overview and internals.pdfPodman Overview and internals.pdf
Podman Overview and internals.pdfSaim Safder
 
Structured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin CoroutinesStructured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin CoroutinesVadims Savjolovs
 
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...Edureka!
 
Introduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractionsIntroduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractionsyann_s
 
Programming in Scala: Notes
Programming in Scala: NotesProgramming in Scala: Notes
Programming in Scala: NotesRoberto Casadei
 
2022.03.23 Conda and Conda environments.pptx
2022.03.23 Conda and Conda environments.pptx2022.03.23 Conda and Conda environments.pptx
2022.03.23 Conda and Conda environments.pptxPhilip Ashton
 
Flutter tutorial for Beginner Step by Step
Flutter tutorial for Beginner Step by StepFlutter tutorial for Beginner Step by Step
Flutter tutorial for Beginner Step by StepChandramouli Biyyala
 
用 Kotlin 做自動化工具
用 Kotlin 做自動化工具用 Kotlin 做自動化工具
用 Kotlin 做自動化工具Shengyou Fan
 

What's hot (20)

valutazione del rischio da movimentazione manuale dei carichi
valutazione del rischio da movimentazione manuale dei carichivalutazione del rischio da movimentazione manuale dei carichi
valutazione del rischio da movimentazione manuale dei carichi
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet Processing
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
 
Scale portatili_14
Scale portatili_14Scale portatili_14
Scale portatili_14
 
Sequelize
SequelizeSequelize
Sequelize
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker Compose
 
Integrating React.js Into a PHP Application
Integrating React.js Into a PHP ApplicationIntegrating React.js Into a PHP Application
Integrating React.js Into a PHP Application
 
Optimizing and Profiling Golang Rest Api
Optimizing and Profiling Golang Rest ApiOptimizing and Profiling Golang Rest Api
Optimizing and Profiling Golang Rest Api
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basics
 
Podman Overview and internals.pdf
Podman Overview and internals.pdfPodman Overview and internals.pdf
Podman Overview and internals.pdf
 
Introduction to Data Oriented Design
Introduction to Data Oriented DesignIntroduction to Data Oriented Design
Introduction to Data Oriented Design
 
Structured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin CoroutinesStructured concurrency with Kotlin Coroutines
Structured concurrency with Kotlin Coroutines
 
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
Dockerfile Tutorial with Example | Creating your First Dockerfile | Docker Tr...
 
Introduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractionsIntroduction to rust: a low-level language with high-level abstractions
Introduction to rust: a low-level language with high-level abstractions
 
Programming in Scala: Notes
Programming in Scala: NotesProgramming in Scala: Notes
Programming in Scala: Notes
 
2022.03.23 Conda and Conda environments.pptx
2022.03.23 Conda and Conda environments.pptx2022.03.23 Conda and Conda environments.pptx
2022.03.23 Conda and Conda environments.pptx
 
Flutter tutorial for Beginner Step by Step
Flutter tutorial for Beginner Step by StepFlutter tutorial for Beginner Step by Step
Flutter tutorial for Beginner Step by Step
 
用 Kotlin 做自動化工具
用 Kotlin 做自動化工具用 Kotlin 做自動化工具
用 Kotlin 做自動化工具
 
Humanoid robots
Humanoid robotsHumanoid robots
Humanoid robots
 

Similar to InfluxDB Client Libraries and Applications | Miroslav Malecha | Bonitoo

Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience NA 2020
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience NA 2020Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience NA 2020
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience NA 2020InfluxData
 
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel LavoieSpring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel LavoieVMware Tanzu
 
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...VMware Tanzu
 
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...InfluxData
 
Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014cornelia davis
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesJakarta_EE
 
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasSpring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasVMware Tanzu
 
Spring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliSpring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliVMware Tanzu
 
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...HostedbyConfluent
 
Spring and Pivotal Application Service - SpringOne Tour - Boston
Spring and Pivotal Application Service - SpringOne Tour - BostonSpring and Pivotal Application Service - SpringOne Tour - Boston
Spring and Pivotal Application Service - SpringOne Tour - BostonVMware Tanzu
 
InfluxDB Roadmap: What’s New and What’s Coming
InfluxDB Roadmap: What’s New and What’s ComingInfluxDB Roadmap: What’s New and What’s Coming
InfluxDB Roadmap: What’s New and What’s ComingInfluxData
 
How to Build Streaming Apps with Confluent II
How to Build Streaming Apps with Confluent IIHow to Build Streaming Apps with Confluent II
How to Build Streaming Apps with Confluent IIconfluent
 
Kube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor appsKube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor appsShikha Srivastava
 
How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemInfluxData
 
InfluxDB Client Libraries and Applications by Ivan Kudibal, Engineering Manag...
InfluxDB Client Libraries and Applications by Ivan Kudibal, Engineering Manag...InfluxDB Client Libraries and Applications by Ivan Kudibal, Engineering Manag...
InfluxDB Client Libraries and Applications by Ivan Kudibal, Engineering Manag...InfluxData
 
F5 Meetup presentation automation 2017
F5 Meetup presentation automation 2017F5 Meetup presentation automation 2017
F5 Meetup presentation automation 2017Guy Brown
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceVMware Tanzu
 
Integrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementIntegrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementJoel W. King
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...MSDEVMTL
 

Similar to InfluxDB Client Libraries and Applications | Miroslav Malecha | Bonitoo (20)

Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience NA 2020
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience NA 2020Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience NA 2020
Tim Hall [InfluxData] | InfluxDB Roadmap | InfluxDays Virtual Experience NA 2020
 
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel LavoieSpring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
 
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
 
Industrial IoT bootcamp
Industrial IoT bootcampIndustrial IoT bootcamp
Industrial IoT bootcamp
 
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
Shashi Raina [AWS] & Al Sargent [InfluxData] | Build Modern Monitoring with I...
 
Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014Running your Spring Apps in the Cloud Javaone 2014
Running your Spring Apps in the Cloud Javaone 2014
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native Microservices
 
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasSpring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour Dallas
 
Spring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliSpring on PAS - Fabio Marinelli
Spring on PAS - Fabio Marinelli
 
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
 
Spring and Pivotal Application Service - SpringOne Tour - Boston
Spring and Pivotal Application Service - SpringOne Tour - BostonSpring and Pivotal Application Service - SpringOne Tour - Boston
Spring and Pivotal Application Service - SpringOne Tour - Boston
 
InfluxDB Roadmap: What’s New and What’s Coming
InfluxDB Roadmap: What’s New and What’s ComingInfluxDB Roadmap: What’s New and What’s Coming
InfluxDB Roadmap: What’s New and What’s Coming
 
How to Build Streaming Apps with Confluent II
How to Build Streaming Apps with Confluent IIHow to Build Streaming Apps with Confluent II
How to Build Streaming Apps with Confluent II
 
Kube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor appsKube con china_2019_7 missing factors for your production-quality 12-factor apps
Kube con china_2019_7 missing factors for your production-quality 12-factor apps
 
How to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin EcosystemHow to Use Telegraf and Its Plugin Ecosystem
How to Use Telegraf and Its Plugin Ecosystem
 
InfluxDB Client Libraries and Applications by Ivan Kudibal, Engineering Manag...
InfluxDB Client Libraries and Applications by Ivan Kudibal, Engineering Manag...InfluxDB Client Libraries and Applications by Ivan Kudibal, Engineering Manag...
InfluxDB Client Libraries and Applications by Ivan Kudibal, Engineering Manag...
 
F5 Meetup presentation automation 2017
F5 Meetup presentation automation 2017F5 Meetup presentation automation 2017
F5 Meetup presentation automation 2017
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application Service
 
Integrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementIntegrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud management
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
 

More from InfluxData

Announcing InfluxDB Clustered
Announcing InfluxDB ClusteredAnnouncing InfluxDB Clustered
Announcing InfluxDB ClusteredInfluxData
 
Best Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow EcosystemBest Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow EcosystemInfluxData
 
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...InfluxData
 
Power Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDBPower Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDBInfluxData
 
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base InfluxData
 
Build an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING StackBuild an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING StackInfluxData
 
Meet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using RustMeet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using RustInfluxData
 
Introducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud DedicatedIntroducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud DedicatedInfluxData
 
Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB InfluxData
 
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...InfluxData
 
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...InfluxData
 
Introducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage EngineIntroducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage EngineInfluxData
 
Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena InfluxData
 
Understanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage EngineUnderstanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage EngineInfluxData
 
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDBStreamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDBInfluxData
 
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...InfluxData
 
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022InfluxData
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022InfluxData
 
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...InfluxData
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022InfluxData
 

More from InfluxData (20)

Announcing InfluxDB Clustered
Announcing InfluxDB ClusteredAnnouncing InfluxDB Clustered
Announcing InfluxDB Clustered
 
Best Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow EcosystemBest Practices for Leveraging the Apache Arrow Ecosystem
Best Practices for Leveraging the Apache Arrow Ecosystem
 
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
How Bevi Uses InfluxDB and Grafana to Improve Predictive Maintenance and Redu...
 
Power Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDBPower Your Predictive Analytics with InfluxDB
Power Your Predictive Analytics with InfluxDB
 
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
How Teréga Replaces Legacy Data Historians with InfluxDB, AWS and IO-Base
 
Build an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING StackBuild an Edge-to-Cloud Solution with the MING Stack
Build an Edge-to-Cloud Solution with the MING Stack
 
Meet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using RustMeet the Founders: An Open Discussion About Rewriting Using Rust
Meet the Founders: An Open Discussion About Rewriting Using Rust
 
Introducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud DedicatedIntroducing InfluxDB Cloud Dedicated
Introducing InfluxDB Cloud Dedicated
 
Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB Gain Better Observability with OpenTelemetry and InfluxDB
Gain Better Observability with OpenTelemetry and InfluxDB
 
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
How a Heat Treating Plant Ensures Tight Process Control and Exceptional Quali...
 
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...How Delft University's Engineering Students Make Their EV Formula-Style Race ...
How Delft University's Engineering Students Make Their EV Formula-Style Race ...
 
Introducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage EngineIntroducing InfluxDB’s New Time Series Database Storage Engine
Introducing InfluxDB’s New Time Series Database Storage Engine
 
Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena Start Automating InfluxDB Deployments at the Edge with balena
Start Automating InfluxDB Deployments at the Edge with balena
 
Understanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage EngineUnderstanding InfluxDB’s New Storage Engine
Understanding InfluxDB’s New Storage Engine
 
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDBStreamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
Streamline and Scale Out Data Pipelines with Kubernetes, Telegraf, and InfluxDB
 
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
Ward Bowman [PTC] | ThingWorx Long-Term Data Storage with InfluxDB | InfluxDa...
 
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
Scott Anderson [InfluxData] | New & Upcoming Flux Features | InfluxDays 2022
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts | InfluxDays 2022
 
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
Steinkamp, Clifford [InfluxData] | Welcome to InfluxDays 2022 - Day 2 | Influ...
 
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
Steinkamp, Clifford [InfluxData] | Closing Thoughts Day 1 | InfluxDays 2022
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

InfluxDB Client Libraries and Applications | Miroslav Malecha | Bonitoo

  • 1. Miroslav Malecha / Product Manager Bonitoo.io InfluxDB Client Libraries and Applications
  • 2. © 2019 InfluxData. All rights reserved. 2 SW Engineering Company ● InfluxData consulting partner Delivered Client Libraries and other deliverables ● End-to-end R&D Services (architecture, agile development, documentation, support, hosting, operation) ● Strong team of professionals (development for SaaS Startups, Enterprise Software, Mobile applications) Technologies ● Java, JS, C#, Python, SQL, ML https://github.com/bonitoo-io
  • 3. © 2019 InfluxData. All rights reserved. 3 ● Client Libraries ○ Java & Spring integration ○ C# ○ Python ● Embedded analytics Agenda
  • 5. © 2019 InfluxData. All rights reserved. 5 Clustered InfluxDB Data Flow InfluxDB 2 Time Series Database Telegraf Agent for Collecting and Reporting Metrics and Events 210+ plugins System Stats Databases Networking Message Queues Apps Apps/IoT Apps/ IoT InfluxDB Client Java .NET Python HTTP GET/POST 1. 2. 3.
  • 6. © 2019 InfluxData. All rights reserved. 6 Benefits of Client Libraries ● Performance/Reliability ○ Client write ~50 times faster* than HTTP POST approach ○ Batching, Jittering, Retriable, Backpressure ● Customization & Easy to use ○ Interface vs study format and build API messages manually ○ Error handling - HTTP codes vs standard exceptions and listeners ○ 3rd party application monitoring systems integration (Micrometer.io) ● Management API Support ○ Configure InfluxData Cloud ● Compatibility ○ Stable libraries interface developed by InfluxData *) InfluxDB Java Client, 2 CPUs, 16GB RAM, 2.000 threads, 100 lines per write for both methods
  • 8. © 2019 InfluxData. All rights reserved. 8 Java Client Library NEW Client for InfluxDB 2 (replacement of Java Client for InfluxDB 1.x) ● Github repo: https://github.com/influxdata/influxdb-client-java ● Capabilities: Query, Write, Management, Security, Reactive streams ● Uses RxJava library (automated Batching, Jittering, Retriable, Backpressure) ● Improved data types support Extensions ● Support Kotlin, Scala (Akka Streams) ● Flux queries support for InfluxDB 1.7+ ● Flux-DSL query builder (Flux language in Java code) Replaces custom fast ingress solutions such as Hystrix, etc. Flux sampleFlux = Flux.from("telegraf") .range(-1L, ChronoUnit.DAYS) .filter( Restrictions.and( Restrictions.measurement().equal("cpu"), Restrictions.field().equal("usage_system")) ) .sample(5, 1);
  • 9. © 2019 InfluxData. All rights reserved. 9 Write API Configuration Configuration parameters similar to Telegraf InfluxDBClient client = InfluxDBClientFactory.create("http://localhost:9999", "my-token".toCharArray()); WriteApi writeApi = client.getWriteApi(WriteOptions.builder() .batchSize(5000) .flushInterval(1000) .jitterInterval(1000) .bufferLimit(10000) .retryInterval(5000) .backpressureStrategy(BackpressureOverflowStrategy.DROP_OLDEST) .build());
  • 10. © 2019 InfluxData. All rights reserved. 10 Write Data Write by POJO (annotated measures) Write By Point Write Line Protocol Temperature temperature = new Temperature(); temperature.setLocation("south"); temperature.setValue(62D); temperature.setTime(Instant.now()); writeApi.writeMeasurement("my-bucket", "my-org", WritePrecision.NS, temperature); Point point = Point.measurement("temperature") .addTag("location","west") .addField("value", 55D) .time(Instant.now().toEpochMilli(), WritePrecision.NS); writeApi.writePoint("my-bucket", "my-org", point); String record = "temperature,location=north value=60.0"; writeApi.writeRecord("my-bucket", "my-org", WritePrecision.NS, record);
  • 11. © 2019 InfluxData. All rights reserved. 11 Query InfluxDB Asynchronous querying using Flux InfluxDBClientOptions clientOptions = InfluxDBClientOptions.builder() .url("http://localhost:9999").authenticate Token("my-token".toCharArray()).org("my-org") .build(); InfluxDBClient client = InfluxDBClientFactory.create(clientOptions); String fluxQuery = "from(bucket: "my-bucket")n" + " |> range(start: -1d)" + " |> filter(fn: (r) => (r._measurement == "cpu" and r._field == "usage_system"))" + " |> sample(n: 5, pos: 1)"; QueryApi queryApi = client.getQueryApi(); queryApi.query( fluxQuery, (cancellable, record) -> { // process the flux query result record System.out.println( record.getTime() + ": " + record.getValue()); }, error -> { // error handling while processing result error.printStackTrace(); }, () -> { // on complete System.out.println("Query completed"); });
  • 12. © 2019 InfluxData. All rights reserved. 12 Advanced Configuration Set organization, bucket, permissions and authorization InfluxDBClient influxDBClient = InfluxDBClientFactory.create("http://localhost:9999", "my- token".toCharArray()); Organization medicalGMBH = influxDBClient.getOrganizationsApi().createOrganization("Medical Corp"); Bucket temperatureBucket = influxDBClient.getBucketsApi().createBucket("temperature-sensors", medicalGMBH); PermissionResource resource = new PermissionResource(); resource.setId(temperatureBucket.getId()); resource.setOrgID(medicalGMBH.getId()); resource.setType(PermissionResource.TypeEnum.BUCKETS); Permission readBucket = new Permission(); readBucket.setResource(resource); readBucket.setAction(Permission.ActionEnum.READ); Permission writeBucket = new Permission(); writeBucket.setResource(resource); writeBucket.setAction(Permission.ActionEnum.WRITE); Authorization authorization = influxDBClient.getAuthorizationsApi() .createAuthorization(medicalGMBH, Arrays.asList(readBucket, writeBucket)); String token = authorization.getToken(); System.out.println("The token to write to temperature-sensors bucket " + token);
  • 14. © 2019 InfluxData. All rights reserved. 14 InfluxDB integrated into Spring framework Application framework for Java Supported autoconfiguration based on class path presence 1) Add Maven dependency Package com.influxdb.spring.influx - Auto configuration, Health check, Metrics exporter 2) Define Client configuration (application.properties) <dependency> <groupId>org.influxdata</groupId> <artifactId>influxdb-spring</artifactId> <version>${influxdb-spring.version}</version> </dependency> spring.influx2.url=http://localhost:9999 spring.influx2.org=03ea32773f1d0000 spring.influx2.bucket=my-bucket spring.influx2.token=my-token-123 spring.influx2.username=my-user
  • 15. © 2019 InfluxData. All rights reserved. 15 Monitor Spring Application using Micrometer.io Micrometer: metrics collection library included in Spring ● Provides timers, gauges, counters, distribution summaries in your JVM application ● Preconfigured metrics support 1) Define new dependency into the pom.xml 2) Add properties to the application.properties <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-influx2</artifactId> <version>${micrometer.version}</version> </dependency> management.metrics.export.influx2.enabled=true management.metrics.export.influx2.uri=http://localhost:9999/api/v2 management.metrics.export.influx2.org=my-org management.metrics.export.influx2.bucket=micrometer-bucket management.metrics.export.influx2.autoCreateBucket=false management.metrics.export.influx2.token=my-token-123 management.metrics.export.influx2.step=10s
  • 16. © 2019 InfluxData. All rights reserved. 16 InfluxDB Visualizing APM Data
  • 18. © 2019 InfluxData. All rights reserved. 18 C# Client Library ● NEW since InfluxDB 2 ● Github Repository: https://github.com/influxdata/influxdb-client-csharp ● Same API as the Java Client ● Compatible with Windows IoT Core ● Query API ● Write API - Line Protocol, Data Point, POCO ● Management API - Sources, buckets, tasks, permissions, health check ● Flux queries support for InfluxDB 1.7+
  • 19. © 2019 InfluxData. All rights reserved. 19 Write Data influxDB = InfluxDBClientFactory.Create("http://localhost:9999", authorization.Token.ToCharArray()); var writeOptions = WriteOptions .CreateNew() .BatchSize(5000) .FlushInterval(1000) .JitterInterval(1000) .RetryInterval(5000) .Build(); using (var writeClient = influxDB.GetWriteApi(writeOptions)) { // Write by POCO var temperature = new Temperature {Location = "south", Value = 62D, Time = DateTime.UtcNow}; writeClient.WriteMeasurement("temperature-sensors", medicalGMBH.Id, WritePrecision.Ns, temperature); // Write by Point var point = PointData.Measurement("temperature") .Tag("location", "west") .Field("value", 55D) .Timestamp(DateTime.UtcNow.AddSeconds(-10), WritePrecision.Ns); writeClient.WritePoint("temperature-sensors", medicalGMBH.Id, point); // Write by LineProtocol var record = "temperature,location=north value=60.0"; writeClient.WriteRecord("temperature-sensors", medicalGMBH.Id, WritePrecision.Ns, record); writeClient.Flush(); }
  • 20. © 2019 InfluxData. All rights reserved. 20 Query InfluxDB var options = InfluxDBClientOptions.Builder.CreateNew() .Url("http://localhost:9999").Org("my-org") .AuthenticateToken("my-token".ToCharArray()).Build(); var client = InfluxDBClientFactory.Create(options); var fluxQuery = "from(bucket: "my-bucket")n" + " |> range(start: -1d)" + " |> filter(fn: (r) => (r._measurement == "cpu" and r._field == "usage_system"))" + " |> sample(n: 5, pos: 1)"; var queryApi = client.GetQueryApi(); await queryApi.Query<Cpu>(fluxQuery, (cancellable, cpu) => // process the flux query records Console.WriteLine(cpu.ToString()); }, (error) => { // error handling while processing result Console.WriteLine(error.ToString()); }, () => { // on complete Console.WriteLine("Query completed"); } );
  • 21. InfluxDB 2 Python Client Library (Alpha)
  • 22. © 2019 InfluxData. All rights reserved. 22 ● NEW since InfluxDB 2 ● Github Repository: https://github.com/influxdata/influxdb-client-python ● Same API as the Java Client ● Capabilities: Query, Write, Management, Security ● Uses RxPY library Python Library
  • 23. © 2019 InfluxData. All rights reserved. 23 Write import codecs from datetime import datetime from influxdb_client import WritePrecision, InfluxDBClient, Point client = InfluxDBClient(url="http://localhost:9999", token="my-token", org="my-org") write_api = client.write_api() p = Point("my_measurement").tag("location", "Prague").field("temperature",25.3).time(datetime.now(), WritePrecision.MS) write_api.write(org="my-org", bucket="my-bucket", record=p)
  • 24. © 2019 InfluxData. All rights reserved. 24 Query import codecs from datetime import datetime from influxdb_client import WritePrecision, InfluxDBClient, Point client = InfluxDBClient(url="http://localhost:9999", token="my-token", org="my-org") query_api = client.query_api() query = ''' from(bucket:"my-bucket") |> range(start: -1m) |> filter(fn: (r) => (r._measurement == "cpu" and r._field == "usage_system")) ''' tables = query_api.query(query) for table in tables: print(table) for record in table.records: print(record.values)
  • 26. © 2019 InfluxData. All rights reserved. 26 Demo Application Github repo: https://github.com/bonitoo-io/influxdata-iot-petstore Demo Application InfluxDB 2 Java Client InfluxDB 2 Application Data Spring Services Vaadin Web Framework +Vaadin Charts Library OpenAPI swagger generated from Java using SpringFox Micrometer.io push internal app metric to InfluxDB App MetricsData InfluxDB 2 Application Monitoring micrometer-registry-influx
  • 27. © 2019 InfluxData. All rights reserved. 27 Predefined UI ● Filters ● Responsive - Mobile devices ● Various chart options - Vaadin End Users UI
  • 28. © 2019 InfluxData. All rights reserved. 28 Data Analyst View Custom Data Explorer ● Visual Flux Builder ● Generates internally Flux queries ● Visualises data from(bucket: “my-bucket”) |> range (start: -2d,stop: now() ) |> filter(fn: (r) => r._measurement == “air” ) |> filter(fn: (r) => r._field == “temperature” ) |> filter(fn: (r) => r.location == “Prerov” ) Generated Flux Query
  • 29. © 2019 InfluxData. All rights reserved. 29 IoT On Device Display Realtime values internal sensors data Aggregated values Using Flux from InfluxDB 2 Github repo: https://github.com/bonitoo-io/BuildAzure.IoT.Adafruit.BME280
  • 30. © 2019 InfluxData. All rights reserved. 30 Summary & THANK YOU New Client Libraries ● For InfluxDB 2 ● Java, C#, Python (alpha), Scala and Kotlin Support ○ Query, Write, Management API ○ High performance/reliability write and query ○ Easy to use ● Github repo: https://github.com/influxdata Embedded analytics ● InfluxDB Client libraries (Query API) ● Demo github repo: https://github.com/bonitoo-io/influxdata-iot-petstore