refactor(tixel-watch): refactor watch-tool to enable type safety and better performance
This commit is contained in:
parent
159df116c8
commit
25dffecb43
8 changed files with 367 additions and 201 deletions
|
|
@ -31,7 +31,7 @@ type ExportResult struct {
|
|||
Error string `json:"error,omitempty"`
|
||||
}
|
||||
|
||||
func (e *ElasticsearchExporter) ExportToStream(ctx context.Context, indices []string, batchSize int, writer io.Writer) error {
|
||||
func (e *ElasticsearchExporter) ExportToStream(ctx context.Context, indices []string, batchSize int, since int, writer io.Writer) error {
|
||||
startTime := time.Now()
|
||||
|
||||
if _, err := writer.Write([]byte("{\n \"export_info\": {\n")); err != nil {
|
||||
|
|
@ -42,6 +42,7 @@ func (e *ElasticsearchExporter) ExportToStream(ctx context.Context, indices []st
|
|||
"timestamp": startTime,
|
||||
"indices": indices,
|
||||
"batch_size": batchSize,
|
||||
"sinceDays": since,
|
||||
}
|
||||
|
||||
infoBytes, err := json.MarshalIndent(exportInfo, " ", " ")
|
||||
|
|
@ -72,7 +73,7 @@ func (e *ElasticsearchExporter) ExportToStream(ctx context.Context, indices []st
|
|||
}
|
||||
first = false
|
||||
|
||||
result := e.exportIndex(ctx, index, batchSize, writer)
|
||||
result := e.exportIndex(ctx, index, batchSize, since, writer)
|
||||
results = append(results, result)
|
||||
|
||||
if result.Error != "" {
|
||||
|
|
@ -98,7 +99,7 @@ func (e *ElasticsearchExporter) ExportToStream(ctx context.Context, indices []st
|
|||
return nil
|
||||
}
|
||||
|
||||
func (e *ElasticsearchExporter) exportIndex(ctx context.Context, index string, batchSize int, writer io.Writer) ExportResult {
|
||||
func (e *ElasticsearchExporter) exportIndex(ctx context.Context, index string, batchSize int, since int, writer io.Writer) ExportResult {
|
||||
startTime := time.Now()
|
||||
result := ExportResult{
|
||||
Index: index,
|
||||
|
|
@ -113,7 +114,18 @@ func (e *ElasticsearchExporter) exportIndex(ctx context.Context, index string, b
|
|||
}
|
||||
|
||||
query := `{"query":{"match_all":{}}}`
|
||||
|
||||
if since > 0 {
|
||||
query = fmt.Sprintf(`{
|
||||
"query": {
|
||||
"range": {
|
||||
"timestamp": {
|
||||
"gte": "now-%dd/d",
|
||||
"lt": "now/d"
|
||||
}
|
||||
}
|
||||
}
|
||||
}`, since)
|
||||
}
|
||||
res, err := e.client.Search(
|
||||
e.client.Search.WithContext(ctx),
|
||||
e.client.Search.WithIndex(index),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue