Commit graph

172 commits

Author SHA1 Message Date
Brian Brazil ffe7efb411 Prepare for multiple text formats
Pass content type down to text parser.

Add layer of indirection in front of text parser,
and rename to avoid future clashes.

Signed-off-by: Brian Brazil <brian.brazil@robustperception.io>
2018-10-18 13:58:00 +01:00
Simon Pasquier c4a6acfb1e
*: move to go 1.11 (#4626)
* *: move to go 1.11

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Reduce number of places where we specify the Go version

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-10-16 09:41:45 +02:00
Simon Pasquier 3581377e5d Replace go-bindata with vfsgen (#4430)
Looking at https://tech.townsourced.com/post/embedding-static-files-in-go/ (which was mentioned in the issue), vfsgen has all the needed features.

In particular:

- Reproducible builds (no issue with timestamping).
- Well maintained and relatively popular.
- Integration with go generate.
- Self-contained (no external dependency).

* [WIP] Replace go-bindata by vfsgen

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Add license + remove doc.go

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Generate templates assets

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Use new templates assets

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* split static assets

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Idempotent make assets

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Update vendor/

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* vendor vfsgendev

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Update README.md

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Simplify assets generation

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Fix README.md

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Use generate helper program instead of vfsgen

This avoids installing vfsgendev in the target environment.

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Remove unused vfsgen package

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Fix Makefile

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* vendoring shurcooL/vfsgen

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Fix go generate command

Signed-off-by: Simon Pasquier <spasquie@redhat.com>

* Sync web/ui/assets_vfsdata.go

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-08-24 09:03:10 +02:00
Simon Pasquier 45b8dea320 Makefile: update .PHONY target (#4234)
Makefile: update .PHONY target

* Move .PHONY declarations near their targets

Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2018-06-11 17:51:28 +02:00
Krasi Georgiev 3f2b2c50dd
use the Makefile.common (#3978)
split common targets in a  Makefile.common to reuse it across projects

Signed-off-by: Krasi Georgiev <krasi.root@gmail.com>
2018-04-19 12:07:10 +03:00
Simon Pasquier 83325c8d82 web: replace deprecated InstrumentHandler() (#3862)
* web: replace deprecated InstrumentHandler()

This change replaces the deprecated InstrumentHandler function by the
equivalent functions from the promhttp package.

The following metrics are removed:

* http_request_duration_microseconds (Summary).
* http_request_size_bytes (Summary).
* http_requests_total (Counter).

And the following metrics are added instead:

* prometheus_http_request_duration_seconds (Histogram).
* prometheus_http_response_size_bytes (Histogram).
* promhttp_metric_handler_requests_in_flight (Gauge).
* promhttp_metric_handler_requests_total (Counter).

* Update github.com/prometheus/common/route package

* web: refactor using the new prometheus/common/route package
2018-03-21 08:16:16 +00:00
Krasi Georgiev 5bda3a8ded Check for unused vendored packages (#3892)
* add check for unused vendor packages
* cleanup unused vendor packages
* run unused check before the tests
2018-03-02 10:20:45 +00:00
Krasi Georgiev 0f00d77661 enable race detection for the tests (#3884) 2018-02-26 23:27:59 +00:00
Frederic Branczyk b9e836c7b7
Merge pull request #3102 from pgier/unset-gobin-during-build
Unset GOBIN in Makefile
2018-02-26 11:24:07 +01:00
Ben Kochie de043c9593
Merge pull request #3461 from prometheus/superq/simplify_promu_fetch
Simplify Makefile promu fetch
2018-02-19 23:21:37 +01:00
Paul Gier 06746ff6d0 unset GOBIN in Makefile
If the GOBIN environment variable is set to a non-default location
relative to GOPATH, then promu will be built in this location and the
the build will fail because it tries to run $GOPATH/bin/promu.

See also issue #483 and #492
2018-02-19 08:23:09 -06:00
Damien Lespiau 4fff98fd7f Remove last mention of GO15VENDOREXPERIMENT
Since #2750[1] prometheus depends on go 1.8. go 1.7 enabled vendoring by
default and removes the corresponding variable[2], simplifying things a bit.

[1] https://github.com/prometheus/prometheus/pull/2750
[2] https://blog.golang.org/go1.7
2017-11-13 11:00:30 +00:00
Ben Kochie 8bfbb4e733 Simplify Makefile promu fetch
Closes: https://github.com/prometheus/prometheus/issues/3460
2017-11-13 11:13:14 +01:00
Sylvain Rabot db5b1aa5f6 Makefile: Allow $(GO) to be set with environmental variable (#2919)
* promu: Use same go invocation as prometheus' for building

If you override $(GO) var in prometheus Makefile in order to use
a custom go binary you might encounter errors while building promu
as promu's Makefile $(GO) var is also defined to look for go in the
$PATH and you might end up using different go binaries for building
prometheus and promu.

This patch makes prometheus Makefile pass its $(GO) var to promu's makefile
as environmental variable.

Signed-off-by: Sylvain Rabot <s.rabot@lectra.com>

* Makefile: Allow $(GO) to be set with environmental variable

Signed-off-by: Sylvain Rabot <s.rabot@lectra.com>

* Makefile: Fix hardcoded call to gofmt

Signed-off-by: Sylvain Rabot <s.rabot@lectra.com>
2017-11-06 15:55:43 +01:00
beorn7 463faf5816 Ignore staticcheck's SA1019 in discovery/kubernetes/kubernetes.go, too
This showed up all of a sudden, even if checking out older commits.
2017-11-04 17:41:39 +01:00
Brian Brazil 73dc96e7f5 Fix leak of ticker in remote storage queue manager. 2017-10-09 19:44:03 +01:00
Brian Brazil 5ee07b3b3a Update staticcheck ignores
Remove things that now longer apply, ignore new things
that are acceptable.
2017-10-09 19:44:03 +01:00
Fabian Reinartz 2d0b8e8b94 Merge branch 'master' into dev-2.0 2017-10-05 13:09:18 +02:00
Ben Kochie 0fcfe3209f Add staticcheck to build. 2017-08-28 17:29:01 +02:00
Fabian Reinartz 1df03d8346 make: disable remote tests temporarily 2017-04-27 17:27:19 +02:00
Fabian Reinartz 73b8ff0ddc Merge branch 'master' into dev-2.0 2017-04-27 10:19:55 +02:00
Fabian Reinartz f2d610c1e5 vendor: update tsdb for fast equal matching 2017-04-10 13:00:27 +02:00
Goutham Veeramachaneni cffb1acf7f Test Longer Tests in Travis (#2570)
* Test Longer Tests in Travis

Signed-off-by: Goutham Veeramachaneni <cs14btech11014@iith.ac.in>

* Make test Target Run All Tests

* Add test-short to run short tests

test is running all the tests now as we are running make tests in
CircleCI and I think the base image is shared across Prometheus Org.

Signed-off-by: Goutham Veeramachaneni <cs14btech11014@iith.ac.in>

* Remove Empty Line

Signed-off-by: Goutham Veeramachaneni <cs14btech11014@iith.ac.in>
2017-04-07 13:46:06 +02:00
Pontus Leitzler 4774d6736a Use go env to fetch GOPATH to support Go 1.8
Go 1.8 do not require env GOPATH to be set and make will fail if it isn't set.
2017-03-22 19:04:20 +01:00
Julius Volz 92d60ba4c0 Add promu installation logging to Makefile
Due to bad GitHub connectivity, "make" frequently got stuck at the promu
step for me, and I was thinking that "format" was taking a long time
because the promu step wasn't logged. All other Makefile targets have
log statements...
2016-09-16 00:59:56 +02:00
Bjoern Rabenstein c7bd563b26 Testing: Add more test targets 2016-08-29 10:53:10 +02:00
Alexey Miroshkin 485f7dde08 Fix data race in lexer and lexer test
As described in #1898 'go test -race' detects a race in lexer code. This
pacth fixes it and also add '-race' option to test target to prevent
regression.
2016-08-26 17:07:17 +02:00
Tobias Schmidt 4042392a2d Always format generated assets
It's easy to forget formatting assets after re-generating them, so let's
do this automatically.
2016-07-27 19:02:18 -04:00
Joshua Rubin fd7775e251
fix build with multi-part $GOPATH 2016-05-24 16:50:27 -06:00
Steve Durrheimer b2292aaa62 Fix git branch with slash as docker tag 2016-04-22 21:47:55 +02:00
Julius Volz 7735d0da63 Fix build for people without $GOPATH/bin in $PATH. 2016-04-22 18:16:00 +02:00
Steve Durrheimer 8688cf2579
New release process using docker, circleci and a centralized
building tool
2016-04-18 22:41:04 +02:00
Jonathan Boulle 1c8262be12 Add script to check for missing license headers
Also adds a `check_license` target to the Makefile to run the script
2016-04-13 16:08:14 +02:00
Tobias Schmidt d7889e61bb Detect code style violations in deeply nested files
So far the style check did not recognize issues in files in deeply
nested directories, e.g. retrieval/discovery/kubernetes/discovery.go.
2016-03-03 02:21:16 -05:00
Julius Volz 999b1d23e0 Add tarballs target to build release tarballs. 2016-01-27 17:03:44 +01:00
Fabian Reinartz 1d58c10b45 Remove assets target from default make execution
go-bindata constantly attempts to update timestamps even though
the file data didn't change.

Fixes #1326
2016-01-18 18:24:25 +01:00
Tobias Schmidt e7fb9d096b Let code format style errors fail CI 2016-01-06 18:29:28 -05:00
Fabian Reinartz a542cc8609 Remove -web.use-local-assets 2015-11-11 17:58:03 +01:00
Fabian Reinartz 57ca7108aa Enable debug generation of go-bindata, rename blob/ to ui/ 2015-11-11 15:55:16 +01:00
Tobias Schmidt ee600cf949 Format web/blob/files.go after generation 2015-10-23 02:51:29 -04:00
Fabian Reinartz 28c2f9e4ff Fix phony targets and log asset generation 2015-09-19 11:51:40 +02:00
Julius Volz cb02af5747 Fix trailing space in Makefile. 2015-09-18 12:19:27 +02:00
Fabian Reinartz 92ffeadb7b Move assets generation to top level make file 2015-09-17 17:53:54 +02:00
Fabian Reinartz 5127963e93 Replace Makefile with simpler setup 2015-09-17 17:26:36 +02:00
Fabian Reinartz 468d2eb60e Vendoring via govendor 2015-09-15 15:37:12 +02:00
Fabian Reinartz e88eb9f164 Remove Godeps 2015-09-15 15:35:29 +02:00
Robey Pointer 3a5c0f30c1 create a unix-style tarball with a nested folder 2015-07-28 08:52:41 -07:00
beorn7 b55a71a30c Fix the race condition targets in the Makefile.
Remove race_condition_run as the original run target has been removed, too.

Fix the race_condition_binary target.
2015-07-06 22:26:41 +02:00
Steve Durrheimer 016e00441f Add circleci yaml for Dockerfile test build 2015-06-26 11:00:15 +02:00
Fabian Reinartz 6e61fd3e96 tools/rulechecker: bye bye 2015-06-25 19:11:49 +02:00
Julius Volz c69b733956 Simplify Go dependency handling in Dockerfile.
Also, put quotes around the GOPATH in the Makefile for safety in case of
spaces, etc.
2015-06-23 23:58:09 +02:00
Fabian Reinartz d27e45cc74 make: add promtool to build and tarball targets. 2015-06-22 16:09:37 +02:00
Fabian Reinartz 330ed7b9f2 Merge pull request #809 from prometheus/update-make-format
Update file exclusion list for `make format`.
2015-06-15 21:04:28 +02:00
Fabian Reinartz 31325c1fd0 make: adjust to new main location. 2015-06-15 19:01:06 +02:00
Julius Volz f10effceb1 Update file exclusion list for make format. 2015-06-15 16:31:35 +02:00
Fabian Reinartz 8d304d95e5 make: do not call go-bindata on building. 2015-06-12 09:29:37 +02:00
Sindre Myren a081c9436b Building without a Makefile (on Windows)
Main changes:

- Switched to using `go-bindata` in place of `scripts/embed-static.sh`.
- Support for building Prometheus without a `Makefile`.
- Minor typo fix to make Prometheus build on Windows (without Makefiles).

Please note that this does not mean that prometheus will work on Windows.
There are still failing tests!
2015-06-10 20:43:59 +02:00
Fabian Reinartz 8eda04fbf1 Remove logging output from test runs 2015-05-23 21:21:56 +02:00
Fabian Reinartz 3b0777ff84 Merge branch 'master' into fabxc/servdisc 2015-05-12 15:46:16 +02:00
Fabian Reinartz 5fbde88919 Switch config to YAML format. 2015-05-07 16:52:14 +02:00
Julius Volz 0dc8f3cb04 Remove obsolete "rules" target from main Makefile. 2015-05-07 11:59:06 +02:00
Johannes 'fish' Ziemke ab3e08e070 Add rule_checker and console templates to archive 2015-05-05 18:40:51 +02:00
Alexander Staubo 8a47f8a44d Makefile: Calculate $(GOROOT), etc. relative to Makefile instead of using $(PWD), which is not always available (eg., in debuild). 2015-02-22 23:14:11 -05:00
Julius Volz 13048b7468 Simplify GOPATH/dependency setup. 2015-02-17 02:20:16 +01:00
Julius Volz af627bb2b9 Copy vendored deps manually instead of using Godeps.
We were using Godep incorrectly (cloning repos from the internet during
build time instead of including Godeps/_workspace in the GOPATH via
"godep go"). However, to avoid even having to fetch "godeps" from the
internet during build, this now just copies the vendored files into the
GOPATH.

Also, the protocol buffer library moved from Google Code to GitHub,
which is reflected in these updates.

This fixes https://github.com/prometheus/prometheus/issues/525
2015-02-17 02:08:56 +01:00
juliusv 5f5e4d76bd Merge pull request #462 from brian-brazil/godeps-format
Exclude Godeps from make format
2015-01-22 18:15:16 +01:00
Brian Brazil e4b4cac212 Exclude Godeps from make format 2015-01-22 17:12:19 +00:00
Bjoern Rabenstein 5859b74f1b Clean up license issues.
- Move CONTRIBUTORS.md to the more common AUTHORS.
- Added the required NOTICE file.
- Changed "Prometheus Team" to "The Prometheus Authors".
- Reverted the erroneous changes to the Apache License.
2015-01-21 20:07:45 +01:00
Stuart Nelson f1c257845f Vendor external dependencies with godep. 2015-01-09 12:00:42 +01:00
Tomás Senart 09c58ce481 Upgrade to Go 1.4
This change set upgrades Prometheus to use Go 1.4
The other modifications were intended to compare benchmarks between the
old and new versions using `golang.org/x/tools/cmd/benchcmp`.

```
benchmark                                old ns/op      new ns/op     delta
BenchmarkTargetManager-8                 38866          19355         -50.20%
BenchmarkTargetPool-8                    114763         58989         -48.60%
BenchmarkFingerprintLockerParallel-8     747            752           +0.67%
BenchmarkFingerprintLockerSerial-8       39.0           39.1          +0.26%
BenchmarkAppend-8                        2020           2553          +26.39%
BenchmarkFuzz-8                          1185584705     506752314     -57.26%
BenchmarkLabelPairs-8                    753            903           +19.92%

benchmark                                old allocs     new allocs     delta
BenchmarkTargetManager-8                 41             46             +12.20%
BenchmarkTargetPool-8                    682            460            -32.55%
BenchmarkFingerprintLockerParallel-8     0              0              +0.00%
BenchmarkFingerprintLockerSerial-8       0              0              +0.00%
BenchmarkAppend-8                        11             15             +36.36%
BenchmarkFuzz-8                          2269055        1061400        -53.22%
BenchmarkLabelPairs-8                    12             12             +0.00%

benchmark                                old bytes      new bytes     delta
BenchmarkTargetManager-8                 8755           7160          -18.22%
BenchmarkTargetPool-8                    82621          41342         -49.96%
BenchmarkFingerprintLockerParallel-8     0              0             +0.00%
BenchmarkFingerprintLockerSerial-8       0              0             +0.00%
BenchmarkAppend-8                        289            293           +1.38%
BenchmarkFuzz-8                          2307248006     586094916     -74.60%
BenchmarkLabelPairs-8                    316            304           -3.80%
```
2014-12-15 14:05:43 +01:00
Bjoern Rabenstein 006b5517e2 Simplify makefiles.
This removes the dependancy on C leveldb and snappy.
It also takes care of fewer dependencies as they would
anyway not work on any non-Debian, non-Brew system.

Change-Id: Ia70dce1ba8a816a003587927e0b3a3f8ad2fd28c
2014-11-25 17:10:39 +01:00
Julius Volz c6e9f085a3 Update used Go version to 1.3.
Go downloads moved to a different URL and require following redirects
(curl's '-L' option) now.

Go 1.3 deliberately randomizes ranges over maps, which uncovered some
bugs in our tests. These are fixed too.

Change-Id: Id2d9e185d8d2379a9b7b8ad5ba680024565d15f4
2014-11-25 17:02:00 +01:00
Matt T. Proud 3e969a8ca2 Parameterize the buffer for marshal/unmarshal.
We are not reusing buffers yet.  This could introduce problems,
so the behavior is disabled for now.

Cursory benchmark data:
- Marshal for 10,000 samples: -30% overhead.
- Unmarshal for 10,000 samples: -15% overhead.

Change-Id: Ib006bdc656af45dca2b92de08a8f905d8d728cac
2014-04-16 12:16:59 +02:00
Julius Volz 44390d831d Introduce semantic versioning.
This introduces semantic versioning (http://semver.org/) in Prometheus:

- A new VERSION file contains the semantic version string.

- The "tarball" target now includes versioning and build information in
  the tarball name, like: "prometheus-0.1.0.linux-amd64.tar.gz".

- A new "release" target allows scp-ing the versioned tarball to a
  remote machine (file server).

- A new "tag" target allows git-tagging the current revision with the
  version specified in VERSION.

Change-Id: I1f19f38b9b317bfa9eb513754750df5a9c602d94
2014-03-11 15:39:22 +01:00
Johannes 'fish' Ziemke d438e1c96c Allow overriding url to fetch go from by env var
If you want to use a different binary package than the officially
provided, you now can point the env var GOURL to the package you
want to get instead.

Change-Id: I1cefe2998bc86435cfbd058ba398a7b6c4e7d031
2013-09-04 15:48:23 +02:00
Matt T. Proud 2b42fd0068 Snapshot of no more frontier.
Change-Id: Icd52da3f52bfe4529829ea70b4865ed7c9f6c446
2013-08-23 17:13:58 +02:00
Julius Volz ab99bd0cbd Add tarball Makefile rule.
Change-Id: I0991346493d816d5a7bdbf523b4cff20f7b59eb6
2013-08-19 16:35:17 +02:00
Matt T. Proud 9c8112a053 Revert "Add flags to build prometheus statically"
This reverts commit 0e9e3e068d.

Not only do we know this to produce problematic artifacts, it refuses
to build on Mac OS X.

    TMPDIR=/tmp GOROOT=/Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/go GOPATH=/Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/gopath /Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/go/bin/go build -o prometheus -ldflags " -X main.buildVersion c7052ed -X main.buildBranch refactor/storage/modify-append-signature -X main.buildUser mattproud@Berlin.local -X main.buildDate 20130815-11:15:49 -X main.goVersion 1.1 -X main.leveldbVersion 1.12.0 -X main.protobufVersion 2.5.0 -X main.snappyVersion 1.1.0 -linkmode external -extldflags '-lstdc++ -lpthread -static /Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/lib/libleveldb.a /Users/mattproud/Development/go/src/github.com/prometheus/prometheus/.build/root/lib/libsnappy.a'" .
    # _/Users/mattproud/Development/go/src/github.com/prometheus/prometheus
    ld: library not found for -lcrt0.o

Change-Id: I4f42161aebfd35a6f09cd7f984b78cc4498774aa
2013-08-15 11:19:44 +02:00
Julius Volz c7052ede27 Tarball build rule fixups.
Change-Id: Idc4db7e20cd705901ea9ad39a0f7269bbb5572b7
2013-08-14 19:23:28 +02:00
Johannes 'fish' Ziemke 0e9e3e068d Add flags to build prometheus statically
Change-Id: I8fc883247e0657d26aa8ca6f24315fb9217277f3
2013-08-14 19:16:00 +02:00
Julius Volz da420a5b97 Add glog options to "make run" to also log to stderr. 2013-08-12 18:21:38 +02:00
Johannes 'fish' Ziemke 1c9ae08e80 Add Dockerfile 2013-08-12 11:02:50 +02:00
Matt T. Proud d8792cfd86 Extract HighWatermarking.
Clean up the rest.
2013-08-05 11:03:03 +02:00
Matt T. Proud f4669a812c Extract index storage into separate types. 2013-08-04 15:31:52 +02:00
Matt T. Proud 30b1cf80b5 WIP - Snapshot of Moving to Client Model. 2013-06-25 15:52:42 +02:00
Julius Volz 235623b45d Fix "make format". 2013-06-18 19:18:39 +02:00
Johannes 'fish' Ziemke 22a40c298d Make prometheus build on bazooka repo manager
- Build build/package on build target
- And include .pkgignore
2013-06-13 16:31:33 +02:00
Matt T. Proud f895acb9ef Trailing build system cleanups.
The .gitignore files had problems, and the build steps could be
simplified.
2013-06-13 15:38:03 +02:00
Johannes 'fish' Ziemke 56249320e3 Remove gvm on travis. 2013-06-13 14:36:00 +02:00
Johannes 'fish' Ziemke 4524a5fe37 Remove gvm and install go by hand. 2013-06-12 18:39:37 +02:00
Matt T. Proud 2ee6e32847 Include race condition runner. 2013-06-05 14:07:40 +02:00
Matt T. Proud 9215580488 Include race condition binary target.
The race condition binary target is special in that it needs to
explicitly link against the dependent libraries and recompile the CGO
bindings.  Because of this, we have a new build target that produces
these binaries.
2013-06-05 13:56:15 +02:00
Johannes 'fish' Ziemke 8507c58bf2 Fix filename in Makefile. 2013-05-23 16:54:21 +02:00
Matt T. Proud 93da3f684a Instruct `make binary` to build binary file. 2013-05-22 17:59:53 +02:00
Matt T. Proud fa6a1f97d0 Expose interfaces for pruner and make pruner tool.
In order to run database cleanups and diagnostics, we should have
a means for pruning a database---even if LevelDB does this for us.
2013-05-10 17:07:03 +02:00
Julius Volz af7920126c Fix build errors and add default build step to "make". 2013-05-07 15:54:41 +02:00
Matt T. Proud 3b9b1c6ab4 Define dependencies for web. stack concretely.
This commit destroys the use of AppState, which makes passing
concrete state along to various serving components onerous.
2013-05-06 11:13:12 +02:00
Julius Volz 9cea5d9df8 Convert the Prometheus configuration to protocol buffers. 2013-04-30 22:26:00 +02:00
Bernerd Schaefer 378e494433 Date format for build info doesn't include spaces
go 1.0.3 doesn't support spaces in -X linker options.
2013-04-25 15:07:35 +02:00
Bernerd Schaefer 9dde9302a8 Explicitly include domain info in build hostname 2013-04-25 13:19:35 +02:00