Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow probes to attach metadata directly to entities #120

Closed
peterbourgon opened this issue May 27, 2015 · 6 comments
Closed

Allow probes to attach metadata directly to entities #120

peterbourgon opened this issue May 27, 2015 · 6 comments
Assignees
Milestone

Comments

@peterbourgon
Copy link
Contributor

Currently the probes produce reports that look like

type Report struct {
    Process Topology
    Network Topology
    HostMetadatas
}

We will change them to look like

type Report struct {
    Endpoint  Topology // former Process
    Process   Topology // only nodes, no edges
    Container Topology // only nodes, no edges
    Address   Topology // former Network
    Host      Topology // former HostMetadatas; only nodes, no edges
}

Probes will attach metadata to the actual entities they scrape, rather than having to explode the metadata into the topologies that happen to be present. This will also make merging a little easier, as we're only dealing with a single type. (via #115)

As part of this work, we'll also add more process and container metadata. (via #114)

@tomwilkie
Copy link
Contributor

Could you elaborate on the key formats inside these topologies please?

And I guess endpoints will need enough metadata on the nodes to link to processes and containers.

Whats in Address thats not in endpoint? Ie could you just put host names as metadata on nodes in endpoint, and then reduce that to get Address?

@peterbourgon
Copy link
Contributor Author

Could you elaborate on the key formats inside these topologies please?

Sure, I'll do this properly in the PR. I need to revisit it to get it straight in my head, to be honest :)

And I guess endpoints will need enough metadata on the nodes to link to processes and containers.

Yes, we'll have foreign key relationships across topologies where we can.

Whats in Address thats not in endpoint?

Address is an IP address i.e. L3. Endpoint is the complete TCP n-tuple i.e. L4. Crucially, there is information we can get and associate with lower levels that won't translate to higher levels. Think ICMP: present in Address, invisible in Endpoint.

Ie could you just put host names as metadata on nodes in endpoint, and then reduce that to get Address?

Yes, but the point of each topology is that it represents a different source of information, which doesn't map perfectly across OSI layer boundaries.

@tomwilkie
Copy link
Contributor

Yeah that makes sense. Am I right in thinking that address current has the
same info as endpoint (minus the port) ie they use the same source?

On Wednesday, 27 May 2015, Peter Bourgon notifications@github.com wrote:

Could you elaborate on the key formats inside these topologies please?

Sure, I'll do this properly in the PR. I need to revisit it to get it
straight in my head, to be honest :)

And I guess endpoints will need enough metadata on the nodes to link to
processes and containers.

Yes, we'll have foreign key relationships across topologies where we can.

Whats in Address thats not in endpoint?

Address is an IP address i.e. L3. Endpoint is the complete TCP n-tuple
i.e. L4. Crucially, there is information we can get and associate with
lower levels that won't translate to higher levels. Think ICMP: present in
Address, invisible in Endpoint.

Ie could you just put host names as metadata on nodes in endpoint, and
then reduce that to get Address?

Yes, but the point of each topology is that it represents a different
source of information, which doesn't map perfectly across OSI layer
boundaries.


Reply to this email directly or view it on GitHub
#120 (comment).

@peterbourgon
Copy link
Contributor Author

Am I right in thinking that address current has the same info as endpoint (minus the port) ie they use the same source?

Yes, as an implementation detail, both Network and Process topologies are currently populated by procspy.Connections. I want to change that ASAP :)

@peterbourgon peterbourgon modified the milestones: earlyjune, endmay Jun 2, 2015
peterbourgon added a commit that referenced this issue Jun 3, 2015
- Report is composed exclusively of topologies
- Certain topologies contain only node metadata
- Refactor package report for better comprehensibility and test coverage

Closes #120
peterbourgon added a commit that referenced this issue Jun 3, 2015
- Report is composed exclusively of topologies
- Certain topologies contain only node metadata
- Refactor package report for better comprehensibility and test coverage

Closes #120
@tomwilkie
Copy link
Contributor

Sounds to me like this can be closed? We've got the extra topologies and the beginning of merging them...

@peterbourgon
Copy link
Contributor Author

Agreed.

bboreham added a commit that referenced this issue Aug 10, 2018
2bbc9a08 Merge pull request #140 from weaveworks/sched-http-retry
c3726dea Add retries to sched util http calls
2cc7b5ac Merge pull request #139 from meghalidhoble/master
fd9b0a72 Change : Modified the lint tools to skip the shfmt check if not installed. Why the change : For ppc64le the specific version of shfmt is not available, hence skipped completely the installation of shfmt tool. Thus this change made.
bc645c70 Merge pull request #138 from dholbach/add-license-file
a642e022 license: add Apache 2.0 license text
9bf59568 Merge pull request #109 from hallum/master
d971d821 Merge pull request #134 from weaveworks/2018-07-03-gcloud-regepx
32e7aa2d Merge pull request #137 from weaveworks/gcp-fw-allow-kube-apiserver
bbb6735e Allow CI to access k8s API server on GCP instances
764d46ca Merge pull request #135 from weaveworks/2018-07-04-docker-ansible-playbook
ecc2a4e3 Merge pull request #136 from weaveworks/2018-07-05-gcp-private-ips
209b7fb6 tools: Add private_ips to the terraform output
369a655f tools: Add an ansible playbook that just installs docker
a643e270 tools: Use --filter instead of --regexp with gcloud
b8eca887 Merge pull request #128 from weaveworks/actually-say-whats-wrong
379ce2bb Merge pull request #133 from weaveworks/fix-decrypt
3b906b54 Fix incompatibility with recent versions of OpenSSL
f091ab43 Merge pull request #132 from weaveworks/add-opencontainers-labels-to-dockerfiles
248def1b Inject git revision in Dockerfiles
64f2c280 Add org.opencontainers.image.* labels to Dockerfiles
ea96d8ed add information about how to get help (#129)
f066ccdd Make yapf diff failure look like an error
34d81d70 Merge pull request #127 from weaveworks/golang-1.10.0-stretch
89a0b4f8 Use golang:1.10.0-stretch image.
ca69607f Merge pull request #126 from weaveworks/disable-apt-daily-test
f5dc5d54 Create "setup-apt" role
7fab4413 Rename bazel to bazel-rules (#125)
ccc83168 Revert "Gocyclo should return error code if issues detected" (#124)
1fe184f1 Bazel rules for building gogo protobufs (#123)
b917bb89 Merge pull request #122 from weaveworks/fix-scope-gc
c029ce01 Add regex to match scope VMs
0d4824b1 Merge pull request #121 from weaveworks/provisioning-readme-terraform
5a82d64c Move terraform instructions to tf section
d285d78d Merge pull request #120 from weaveworks/gocyclo-return-value
76b94a47 Do not spawn subshell when reading cyclo output
93b3c0d5 Use golang:1.9.2-stretch image
d40728f6 Gocyclo should return error code if issues detected
c4ac1c3f Merge pull request #114 from weaveworks/tune-spell-check
89806560 Only check files
12ebc73a Don't spell-check pki files
578904ab Special-case spell-check the same way we do code checks
e772ed59 Special-case on mime type and extension using just patterns
ae82b50c Merge pull request #117 from weaveworks/test-verbose
89434738 Propagate verbose flag to 'go test'.
7c79b43c Merge pull request #113 from weaveworks/update-shfmt-instructions
258ef015 Merge pull request #115 from weaveworks/extra-linting
e690202b Use tools in built image to lint itself
126eb561 Add shellcheck to bring linting in line with scope
63ad68f0 Don't run lint on files under .git
51d908a3 Update shfmt instructions
e91cb0d3 Merge pull request #112 from weaveworks/add-python-lint-tools
0c87554d Add yapf and flake8 to golang build image
35679ee5 Merge pull request #110 from weaveworks/parallel-push-errors
3ae41b6f Remove unneeded if block
51ff31a5 Exit on first error
0faad9f7 Check for errors when pushing images in parallel
d87cd026 Add arg flag override for destination socks host:port in pacfile.

git-subtree-dir: tools
git-subtree-split: 2bbc9a08a7f672eae62cfe110d7f536c6cc53ce3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants