Fix issue #881
This commit is contained in:
parent
5aa8b0fc86
commit
1fc01caa65
@ -17,6 +17,7 @@ package elasticsearch
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
info "github.com/google/cadvisor/info/v1"
|
info "github.com/google/cadvisor/info/v1"
|
||||||
storage "github.com/google/cadvisor/storage"
|
storage "github.com/google/cadvisor/storage"
|
||||||
@ -67,7 +68,7 @@ func (self *elasticStorage) AddStats(ref info.ContainerReference, stats *info.Co
|
|||||||
// Add some default params based on ContainerStats
|
// Add some default params based on ContainerStats
|
||||||
detail := self.containerStatsAndDefaultValues(ref, stats)
|
detail := self.containerStatsAndDefaultValues(ref, stats)
|
||||||
// Index a cadvisor (using JSON serialization)
|
// Index a cadvisor (using JSON serialization)
|
||||||
put, err := self.client.Index().
|
_, err := self.client.Index().
|
||||||
Index(self.indexName).
|
Index(self.indexName).
|
||||||
Type(self.typeName).
|
Type(self.typeName).
|
||||||
BodyJson(detail).
|
BodyJson(detail).
|
||||||
@ -76,7 +77,6 @@ func (self *elasticStorage) AddStats(ref info.ContainerReference, stats *info.Co
|
|||||||
// Handle error
|
// Handle error
|
||||||
panic(fmt.Errorf("failed to write stats to ElasticSearch- %s", err))
|
panic(fmt.Errorf("failed to write stats to ElasticSearch- %s", err))
|
||||||
}
|
}
|
||||||
fmt.Printf("Indexed tweet %s to index %s, type %s\n", put.Id, put.Index, put.Type)
|
|
||||||
}()
|
}()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -93,19 +93,24 @@ func New(machineName,
|
|||||||
indexName,
|
indexName,
|
||||||
typeName,
|
typeName,
|
||||||
elasticHost string,
|
elasticHost string,
|
||||||
|
enableSniffer bool,
|
||||||
) (storage.StorageDriver, error) {
|
) (storage.StorageDriver, error) {
|
||||||
// Obtain a client and connect to the default Elasticsearch installation
|
// Obtain a client and connect to the default Elasticsearch installation
|
||||||
// on 127.0.0.1:9200. Of course you can configure your client to connect
|
// on 127.0.0.1:9200. Of course you can configure your client to connect
|
||||||
// to other hosts and configure it in various other ways.
|
// to other hosts and configure it in various other ways.
|
||||||
client, err := elastic.NewClient(
|
client, err := elastic.NewClient(
|
||||||
elastic.SetURL(elasticHost))
|
elastic.SetHealthcheck(true),
|
||||||
|
elastic.SetSniff(enableSniffer),
|
||||||
|
elastic.SetHealthcheckInterval(30*time.Second),
|
||||||
|
elastic.SetURL(elasticHost),
|
||||||
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Handle error
|
// Handle error
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ping the Elasticsearch server to get e.g. the version number
|
// Ping the Elasticsearch server to get e.g. the version number
|
||||||
info, code, err := client.Ping().Do()
|
info, code, err := client.Ping().URL(elasticHost).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Handle error
|
// Handle error
|
||||||
panic(err)
|
panic(err)
|
||||||
|
@ -39,9 +39,10 @@ var argDbTable = flag.String("storage_driver_table", "stats", "table name")
|
|||||||
var argDbIsSecure = flag.Bool("storage_driver_secure", false, "use secure connection with database")
|
var argDbIsSecure = flag.Bool("storage_driver_secure", false, "use secure connection with database")
|
||||||
var argDbBufferDuration = flag.Duration("storage_driver_buffer_duration", 60*time.Second, "Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction")
|
var argDbBufferDuration = flag.Duration("storage_driver_buffer_duration", 60*time.Second, "Writes in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transaction")
|
||||||
var storageDuration = flag.Duration("storage_duration", 2*time.Minute, "How long to keep data stored (Default: 2min).")
|
var storageDuration = flag.Duration("storage_duration", 2*time.Minute, "How long to keep data stored (Default: 2min).")
|
||||||
var argElasticHost = flag.String("storage_driver_es_host", "http://localhost:9200", "database host:port")
|
var argElasticHost = flag.String("storage_driver_es_host", "http://localhost:9200", "ElasticSearch host:port")
|
||||||
var argIndexName = flag.String("storage_driver_index", "cadvisor", "index name")
|
var argIndexName = flag.String("storage_driver_es_index", "cadvisor", "ElasticSearch index name")
|
||||||
var argTypeName = flag.String("storage_driver_type", "stats", "type name")
|
var argTypeName = flag.String("storage_driver_es_type", "stats", "ElasticSearch type name")
|
||||||
|
var argEnableSniffer = flag.Bool("storage_driver_es_enable_sniffer", false, "ElasticSearch uses a sniffing process to find all nodes of your cluster by default, automatically")
|
||||||
|
|
||||||
// Creates a memory storage with an optional backend storage option.
|
// Creates a memory storage with an optional backend storage option.
|
||||||
func NewMemoryStorage(backendStorageName string) (*memory.InMemoryCache, error) {
|
func NewMemoryStorage(backendStorageName string) (*memory.InMemoryCache, error) {
|
||||||
@ -108,6 +109,7 @@ func NewMemoryStorage(backendStorageName string) (*memory.InMemoryCache, error)
|
|||||||
*argIndexName,
|
*argIndexName,
|
||||||
*argTypeName,
|
*argTypeName,
|
||||||
*argElasticHost,
|
*argElasticHost,
|
||||||
|
*argEnableSniffer,
|
||||||
)
|
)
|
||||||
case "statsd":
|
case "statsd":
|
||||||
backendStorage, err = statsd.New(
|
backendStorage, err = statsd.New(
|
||||||
|
Loading…
Reference in New Issue
Block a user