Skip to content
This repository has been archived by the owner on Aug 23, 2023. It is now read-only.

indexing metrics: split up update vs add #304

Closed
Dieterbe opened this issue Sep 6, 2016 · 3 comments
Closed

indexing metrics: split up update vs add #304

Dieterbe opened this issue Sep 6, 2016 · 3 comments
Assignees

Comments

@Dieterbe
Copy link
Contributor

Dieterbe commented Sep 6, 2016

currently the metrics are a bit confusing, due to the memory index receiving continuously new "adds" that are actually updates. and ES not getting any news adds after the initial adds.

@Dieterbe Dieterbe self-assigned this Jan 25, 2017
@Dieterbe
Copy link
Contributor Author

Dieterbe commented Jan 26, 2017

There's really several problems here:

  1. memoryIndex executes updates and adds (but calls both "adds" in metrics)
  2. ES does not perform updates unless partition changes (created ES index does not update definitions like cassandra does #500 for that)
  3. ES uses the bulk indexer, so adds, updates and deletes are intermingled and we can't really know how many of each went into each bulkSend (and hence also into each processEsResponse). we can't really track the properties ourselves since elastigo calls bulkSend concurrently. we could do it if we implemented our own bulksender, but that's just not something we should do now since we don't use the es index and we discourage it anyway, so we can just change the metric names to clarify they could be any operation.

Dieterbe added a commit that referenced this issue Jan 26, 2017
* split up updates vs adds. correctly categorize them
* clarify and assure that all ES/cass operation (add, update, delete) metrics also include the memory part
  (which was already the case for most, but not all operations. and was not documented well)
* operations on ES index (add/delete/update) turn into backend operations that
  get mingled into larger bulk operations, clarify the ambiguity.
  don't pretend it was an add, make it clear we can't tell for sure what
  kind of operation it was.
* similar for Cassandra: the backend executes inserts (on behalf of adds
  and updates) and deletes (on behalf of updates and deletes)
  Even if we tied back query results to the original command, e.g. we
  could increment an update success counter when an insert succeeds, if
  we track that insert was due to an update, the update might still not
  be successfull if the delete fails. So the ok/fail counters should
  really be for queries.
* also time prune operations
* specify whether durations concern one metric, or several (e.g. a pattern delete)

fix #304
@woodsaj
Copy link
Member

woodsaj commented Jan 27, 2017

Personally i think we should just remove the ES index from the code base. There is no benefit to us keeping it around.

@Dieterbe
Copy link
Contributor Author

yeah that's reasonable. I'll do that in my pr as well.

Dieterbe added a commit that referenced this issue Jan 31, 2017
* split up updates vs adds. correctly categorize them
* clarify and assure that all ES/cass operation (add, update, delete) metrics also include the memory part
  (which was already the case for most, but not all operations. and was not documented well)
* operations on ES index (add/delete/update) turn into backend operations that
  get mingled into larger bulk operations, clarify the ambiguity.
  don't pretend it was an add, make it clear we can't tell for sure what
  kind of operation it was.
* similar for Cassandra: the backend executes inserts (on behalf of adds
  and updates) and deletes (on behalf of updates and deletes)
  Even if we tied back query results to the original command, e.g. we
  could increment an update success counter when an insert succeeds, if
  we track that insert was due to an update, the update might still not
  be successfull if the delete fails. So the ok/fail counters should
  really be for queries.
* also time prune operations
* specify whether durations concern one metric, or several (e.g. a pattern delete)

fix #304
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants