All Projects → github → Vulcanizer

github / Vulcanizer

Licence: mit
GitHub's ops focused Elasticsearch library

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Vulcanizer

Graphql Compose Elasticsearch
Hide Elastic Search REST API behind GraphQL.
Stars: ✭ 498 (-18.09%)
Mutual labels:  elasticsearch
Elasticsearch Hq
Monitoring and Management Web Application for ElasticSearch instances and clusters.
Stars: ✭ 4,832 (+694.74%)
Mutual labels:  elasticsearch
Books Recommendation
程序员进阶书籍(视频),持续更新(Programmer Books)
Stars: ✭ 558 (-8.22%)
Mutual labels:  elasticsearch
Elasticsearch Js
Official Elasticsearch client library for Node.js
Stars: ✭ 4,828 (+694.08%)
Mutual labels:  elasticsearch
Javakeeper
✍️ Java 工程师必备架构体系知识总结:涵盖分布式、微服务、RPC等互联网公司常用架构,以及数据存储、缓存、搜索等必备技能
Stars: ✭ 502 (-17.43%)
Mutual labels:  elasticsearch
Zenodo
Research. Shared.
Stars: ✭ 528 (-13.16%)
Mutual labels:  elasticsearch
Plastic
Plastic is an Elasticsearch ODM and mapper for Laravel. It renders the developer experience more enjoyable while using Elasticsearch, by providing a fluent syntax for mapping, querying, and storing eloquent models.
Stars: ✭ 494 (-18.75%)
Mutual labels:  elasticsearch
Docker Compose Elasticsearch Kibana
Docker Compose for Elasticsearch and Kibana
Stars: ✭ 584 (-3.95%)
Mutual labels:  elasticsearch
Ipfs Search
Search engine for the Interplanetary Filesystem.
Stars: ✭ 519 (-14.64%)
Mutual labels:  elasticsearch
Kafka Connect Elasticsearch
Kafka Connect Elasticsearch connector
Stars: ✭ 550 (-9.54%)
Mutual labels:  elasticsearch
Aws Es Proxy
aws-es-proxy is a small web server application sitting between your HTTP client (browser, curl, etc...) and Amazon Elasticsearch service.
Stars: ✭ 504 (-17.11%)
Mutual labels:  elasticsearch
Gohangout
golang版本的hangout, 希望能省些内存. 使用了自己写的Kafka lib .. 虚. 不过我们在生产环境已经使用近1年, kafka 版本从0.9.0.1到2.0都在使用, 目前情况稳定. 吞吐量在每天2000亿条以上.
Stars: ✭ 507 (-16.61%)
Mutual labels:  elasticsearch
Runbook
A framework for gradual system automation
Stars: ✭ 531 (-12.66%)
Mutual labels:  operations
Php Docker Boilerplate
🍲 PHP Docker Boilerplate for Symfony, Wordpress, Joomla or any other PHP Project (NGINX, Apache HTTPd, PHP-FPM, MySQL, Solr, Elasticsearch, Redis, FTP)
Stars: ✭ 503 (-17.27%)
Mutual labels:  elasticsearch
Elasticsearch Analysis Ansj
Stars: ✭ 561 (-7.73%)
Mutual labels:  elasticsearch
Phpmyfaq
phpMyFAQ - Open Source FAQ web application for PHP and MySQL, PostgreSQL and other databases
Stars: ✭ 494 (-18.75%)
Mutual labels:  elasticsearch
Feedhq
FeedHQ is a web-based feed reader
Stars: ✭ 525 (-13.65%)
Mutual labels:  elasticsearch
Pyes
Python connector for ElasticSearch - the pythonic way to use ElasticSearch
Stars: ✭ 606 (-0.33%)
Mutual labels:  elasticsearch
Fess
Fess is very powerful and easily deployable Enterprise Search Server.
Stars: ✭ 561 (-7.73%)
Mutual labels:  elasticsearch
Nboost
NBoost is a scalable, search-api-boosting platform for deploying transformer models to improve the relevance of search results on different platforms (i.e. Elasticsearch)
Stars: ✭ 549 (-9.7%)
Mutual labels:  elasticsearch

vulcanizer

GitHub's ops focused Elasticsearch library

build status GoDoc Go Report Card release

This project is a golang library for interacting with an Elasticsearch cluster. It's goal is to provide a high level API to help with common tasks that are associated with operating an Elasticsearch cluster such as querying health status of the cluster, migrating data off of nodes, updating cluster settings, etc.

This project does not aim to be a fully-featured API client for querying or indexing to Elasticsearch.

Go API

You can perform custom operations in your Go application.

import "github.com/github/vulcanizer"

v = vulcanizer.NewClient("localhost", 9200)
oldSetting, newSetting, err := v.SetSetting("indices.recovery.max_bytes_per_sec", "1000mb")

Command line application

This project produces a vulcanizer binary that is a command line application that can be used to manage your Elasticsearch cluster.

$ vulcanizer help
Usage:
  vulcanizer [command]

Available Commands:
  aliases     Interact with aliases of the cluster.
  allocation  Set shard allocation on the cluster.
  analyze     Analyze text given an analyzer or a field and index.
  drain       Drain a server or see what servers are draining.
  fill        Fill servers with data, removing shard allocation exclusion rules.
  health      Display the health of the cluster.
  help        Help about any command
  indices     Display the indices of the cluster.
  nodes       Display the nodes of the cluster.
  repository  Interact with the configured snapshot repositories.
  setting     Interact with cluster settings.
  settings    Display all the settings of the cluster.
  shards      Get shard data by cluster node(s).
  snapshot    Interact with a specific snapshot.

Flags:
  -c, --cluster string      Cluster to connect to defined in config file
  -f, --configFile string   Configuration file to read in (default to "~/.vulcanizer.yaml")
  -h, --help                help for vulcanizer
      --host string         Host to connect to (default "localhost")
      --password string     Password to use during authentication
      --path string         Path to prepend to queries, in case Elasticsearch is behind a reverse proxy
  -p, --port int            Port to connect to (default 9200)
      --protocol string     Protocol to use when querying the cluster. Either 'http' or 'https'. Defaults to 'http' (default "http")
  -k, --skipverify string   Skip verifying server's TLS certificate. Defaults to 'false', ie. verify the server's certificate (default "false")
      --user string         User to use during authentication

Use "vulcanizer [command] --help" for more information about a command.

Roadmap and future releases

The proposed future for vulcanizer can be found in our ROADMAP.

Configuration and connection information

All commands take --cluster <name> to look up information in a configuration file in ~/.vulcanizer.yaml. The configuration should be in the form of

local:
  host: localhost
  port: 9200
staging:
  host: 10.10.2.1
  port: 9201
production:
  host: 10.10.1.1
  port: 9202

Alternatively, all commands take --host and --port for the connection information.

For example:

# Query for cluster health on the "local" cluster
vulcanizer health --cluster local

# Query for nodes against the node 10.10.2.1 and port 9202
vulcanizer nodes --host 10.10.2.1 --port 9202

Development

./script/build will compile the project and install the vulcanizer binary to $GOPATH/bin.

./script/test will run the tests in the project.

Supported Elasticsearch versions

Integration tests are set up to run against the latest v5 and v6 versions of Elasticsearch.

Name

Vulcanization is the process of making rubber more elastic, so vulcanizer is the library that makes Elasticsearch easier to work with!

Project status

This project is under active development.

Contributing

This repository is open to contributions. Please also see code of conduct

To get up and running, install the project into your $GOPATH and run the set up scripts.

go get github.com/github/vulcanizer

cd $GOPATH/src/github.com/github/vulcanizer

./script/bootstrap
./script/test

And the test suite should execute correctly.

License

This project is released under the MIT LICENSE. Please note it includes 3rd party dependencies release under their own licenses; dependencies are listed in our go.mod file. When using the GitHub logos, be sure to follow the GitHub logo guidelines.

Authors

Authored by GitHub Engineering

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].