Coder Social home page Coder Social logo

Diff mappings about vulcanizer HOT 4 OPEN

github avatar github commented on May 28, 2024
Diff mappings

from vulcanizer.

Comments (4)

nickcanz avatar nickcanz commented on May 28, 2024 2

Thanks for the question! I admit, this feature might not be the most useful, so I don't think it's worth spending a lot of time on.

The idea would be if you had several time series indices on a cluster to be able to compare logs-2019-02-01 and logs-2019-03-01 and see if any of the mappings had changed between those two indices. The output could be a string similar to the go-comp output.

from vulcanizer.

leosunmo avatar leosunmo commented on May 28, 2024

I've got a POC going with https://github.com/nsf/jsondiff
image

The problem is that the output is absolutely massive because of the mapping file sizes.

I was working on a custom reporter for https://github.com/google/go-cmp but it was a bit over my head. The default settings for go-cmp is very verbose, so we would need a custom reporter, as seen here: https://pkg.go.dev/github.com/google/go-cmp/[email protected]?tab=doc#example-Reporter.

The example reporter only outputs the actual diff with the path leading up to that, but it's still very dense so would need some customisation.

root
["mappings"]
 .(map[string]interface {})
  ["kube-logs"]
   .(map[string]interface {})
    ["properties"]
     .(map[string]interface {})
      ["extra"]
       .(map[string]interface {})
        ["properties"]
         .(map[string]interface {})
          ["req"]
           .(map[string]interface {})
            ["properties"]
             .(map[string]interface {})
              ["headers"]
               .(map[string]interface {})
                ["properties"]
                 .(map[string]interface {})
                  ["dnt"]
                   :
	-: <invalid reflect.Value>
	+: map[fields:map[keyword:map[ignore_above:256 type:keyword]] norms:false type:text]

root
["mappings"]
 .(map[string]interface {})
  ["kube-logs"]
   .(map[string]interface {})
    ["properties"]
     .(map[string]interface {})
      ["message_args"]
       .(map[string]interface {})
        ["fields"]
         :
	-: map[keyword:map[ignore_above:256 type:keyword]]
	+: <invalid reflect.Value>

I also have some reflect value issues here.

from vulcanizer.

leosunmo avatar leosunmo commented on May 28, 2024

The main issue for go-cmp is that we don't have a struct this can be marshalled in to, so everything is a map[string]interface {}

from vulcanizer.

leosunmo avatar leosunmo commented on May 28, 2024

It looks like nsf/jsondiff#6 was finally solved! Going to give it a try

from vulcanizer.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.