InfluxDB 오픈 소스 분포 식 순서, 이벤트 및 지표 데이터베이스

6756 단어 influxdb
InfluxDB 는 오픈 소스 분포 식 순서, 사건 과 기준 데이터 베이스 이다.외부 의존 없 이 Go 언어 로 작성 합 니 다.그 설계 목 표 는 분포 식 과 수평 신축 확장 을 실현 하 는 것 이다.
특징.
  • schemaless (구조 없 음) 는 임 의 수량의 열
  • 일 수 있 습 니 다.
  • Scalable
  • min, max, sum, count, mean, median 일련의 함수, 편리 한 통계
  • Native HTTP API, http 지원 내장, http 읽 기와 쓰기 사용
  • 강력 한 쿼 리 언어 유사 sql
  • 내장 탐색 기 자체 관리 도구
  • 관리 인터페이스:
    InfluxDB 开源分布式时序、事件和指标数据库_第1张图片
    API
    InfluxDB 는 두 가지 api 방식 을 지원 합 니 다.
  • HTTP API
  • Protobuf API

  • Protobuf 아직 개발 완료 되 지 않 았 습 니 다. 홈 페이지 문서 가 없습니다.
    http api 를 어떻게 사용 하여 조작 합 니까?
    예 를 들 어 foo_production 이 데이터 베 이 스 를 일련의 데 이 터 를 삽입 하면 POST/db/foo_production/series?u=some_user&p=some_password 에 요청 하고 데 이 터 를 body 에 넣 는 것 을 발견 할 수 있다.
    데이터 가 이렇게 보 입 니 다:
    아래 의 "name": "events", 그 중에서 "events"는 하나의 series, 관계 형 데이터베이스 와 유사 한 표 table 입 니 다.
    [
      {
        "name": "events",
        "columns": ["state", "email", "type"],
        "points": [
          ["ny", "[email protected]", "follow"],
          ["ny", "[email protected]", "open"]
        ]
      },
      {
        "name": "errors",
        "columns": ["class", "file", "user", "severity"],
        "points": [
          ["DivideByZero", "example.py", "[email protected]", "fatal"]
        ]
      }
    ]
    

    형식 은 json 입 니 다. 한 개 POST 에서 여러 개 series 를 보 내 달라 고 요청 할 수 있 습 니 다. 각각 series 에 있 는 points 은 여러 개 일 수 있 지만 색인 은 columns 과 대응 해 야 합 니 다.
    위의 데이터 에는 time 열 이 포함 되 어 있 지 않 습 니 다. InfluxDB 는 스스로 추가 하지만 지정 할 수 있 습 니 다 time. 예 를 들 어:
    [
      {
        "name": "response_times",
        "columns": ["time", "value"],
        "points": [
          [1382819388, 234.3],
          [1382819389, 120.1],
          [1382819380, 340.9]
        ]
      }
    ]
    

    time 은 InfluxDB 에서 매우 중요 하 다. 왜냐하면 InfluxDB 는 time series database InfluxDB 에 또 하나의 sequence_number 필드 는 데이터 베 이 스 를 유지 하 는 것 으로 my sql 과 유사 한 메 인 키 개념 이다.
    InfluxDB 추가 삭 제 는 http api 로 이 루어 지 며 정규 표현 식 으로 데 이 터 를 삭제 하 는 것 도 지원 하고 계획 작업 도 지원 합 니 다.
    예 를 들 면:
    보 내기 POST 요청 /db/:name/scheduled_deletes, body 는 다음 과 같 습 니 다.
    {
      "regex": "stats\..*",
      "olderThan": "14d",
      "runAt": 3
    }
    

    이 조 회 는 14 일 이상 의 데 이 터 를 삭제 하고 stats 로 시작 하 는 모든 데 이 터 를 삭제 하 며 매일 3: 00 AM 에 실 행 됩 니 다.
    공식 문서 더 자세히 보기: http://influxdb.org/docs/api/http.html
    검색 언어
    InfluxDB 는 sql 과 유사 한 검색 언어 를 제공 합 니 다.
    보아하니 이렇다.
    select * from events where state == 'NY';
    
    select * from log_lines where line =~ /error/i;
    
    select * from events where customer_id == 23 and type == 'click';
    
    select * from response_times where value > 500;
    
    select * from events where email !~ /.*gmail.*/;
    
    select * from nagios_checks where status != 0;
    
    select * from events 
    where (email =~ /.*gmail.* or email =~ /.*yahoo.*/) and state == 'ny';
    
    delete from response_times where time > now() - 1h
    

    매우 쉽게 시작 할 수 있 고 Group By, Merging Series, Joining Series 도 지원 하 며 자주 사용 하 는 통계 함수, 예 를 들 어 max, min, mean 등 을 내장 합 니 다.
    문서: http://influxdb.org/docs/query_language/
    창고.
    상용 언어의 라 이브 러 리 는 모두 있 습 니 다. api 가 간단 하고 스스로 포장 하기 쉽 기 때 문 입 니 다.
    InfluxdDB 는 많은 모니터링 소프트웨어 의 백 엔 드 로 서 모니터링 데 이 터 를 InfluxdDB StatsD, CollectD, FluentD 에 직접 저장 할 수 있다.
    그리고 다른 시각 화 도 구 는 InfluxDB 를 지원 합 니 다. 그러면 InfluxDB 를 바탕 으로 편리 하 게 모니터링 플랫폼 을 구축 할 수 있 습 니 다.
    InfluxDB 데이터 시각 화 도구
    InfluxDB 는 시간 기반 데이터, 예 를 들 어 모니터링 데 이 터 를 저장 하 는 데 사 용 됩 니 다. InfluxDB 자체 가 Http API 를 제공 하기 때문에 InfluxDB 를 사용 하여 모니터링 데이터 저장 센터 를 편리 하 게 구축 할 수 있 습 니 다.
    InfluxDB 의 데이터 전시 에 대해 공식 admin 은 매우 간단 한 도표 가 있 는데 이렇게 보인다.
    InfluxDB 开源分布式时序、事件和指标数据库_第2张图片
    프로그램 을 작성 하여 데 이 터 를 보 여 주 는 것 외 에 도 선택 할 수 있 습 니 다.
  • tasseo https://github.com/obfuscurity/tasseo/
  • grafana https://github.com/torkelo/grafana

  • tasseo
    tasseo, Graphite 를 위 한 라 이브 dashboard, 지금도 InfluxDB 를 지원 합 니 다. tasseo 는 간단 하고 설정 할 수 있 는 옵션 이 적 습 니 다.
    InfluxDB 开源分布式时序、事件和指标数据库_第3张图片
    Grafana
    Grafana 는 순수한 html/js 응용 프로그램 으로 InfluxDB 를 방문 할 때 크로스 도 메 인 접근 제한 이 없습니다.데이터 원본 을 InfluxDB 로 설정 하면 되 고 나머지 작업 은 그래프 를 설정 하 는 것 이다.그 라 파 나 는 기능 이 매우 강하 다.ElasticsSearch 를 사용 하여 Dashboard 의 정의 파일 을 저장 하고 JSON 파일 (Save -> Advanced -> Export Schema) 을 내 보 내 고/app/dashboards 디 렉 터 리 에 업로드 할 수 있 습 니 다.
    데이터 원본 설정:
       datasources: {      
          influx: {
            default: true,
            type: 'influxdb',
            url: 'http://:8086/db/',
            username: 'test',
            password: 'test',
          }
        },
    

    InfluxDB 开源分布式时序、事件和指标数据库_第4张图片

    좋은 웹페이지 즐겨찾기