Skip to content

Conversation

@waprin
Copy link
Contributor

@waprin waprin commented Aug 4, 2016

This kicks off the PR for #1867 with the usage docs. Implementation is started and will follow this soon.

@rimey is primary reviewer here, largely just took most of his suggestions but some followup comments here:

  1. Keyword arguments sounds like a good idea and not too tricky, we can do that now.

  2. re: a way to write multiple TimeSeries in one go. I did add the suggested method.

Currently, there is no way to write more than one point in a TimeSeries. The only way we could batch writes is doing something like this:

https://developers.google.com/api-client-library/python/guide/batch

This might involve some changes to the core client library here, how important do we think this is?

In general, what are the main use cases for writing multiple TimeSeries at once? Is it just batching to reduce network requests? I think the method would currently just be a wrapper around

for ts in timeseries_list:
     ts.create()

which may be a good wrapper to have, even though users could trivially write that out.

  1. I think you want the most common use case to be as simple as possible, which is why I think we want a write method that just takes a single value without forcing to pass the metric and resource every time. Since the timeseries.create() API call requires a Metric and Resource, we have to have a class that contains that Metric and Resource. We can of course just use the TimeSeries itself, but since you can only write a single point to that TimeSeries, it's not something that makes sense to re-use if we want the local object to map well to the API object. So I instead propose to add a TimeseriesWriter class that can take a Metric and Resource and be re-used to create new TimeSeries with those Metric and Resource.
timeseries_writer = client.get_timeseries_writer(metric, resource)
timeseries_writer.write_point(value) # API call

cc @sharbison3 @supriyagarg

@googlebot googlebot added the cla: yes This human has signed the Contributor License Agreement. label Aug 4, 2016
@waprin waprin force-pushed the justdoc2 branch 5 times, most recently from ff8bd99 to 25573ea Compare August 4, 2016 22:19
value_type=ValueType.INT64,
labels=[label],
description='Cumulative count of HTTP responses.')
>>> if not metric_descriptor.exist():

This comment was marked as spam.

This comment was marked as spam.

@waprin
Copy link
Contributor Author

waprin commented Aug 5, 2016

I realized an issue. Metric currently doesn't contain the descriptor, which means when you try to write a value for it, it doesn't know how to specify its value type. So I have changed Metric to now optionally include a MetricDescriptor. It's still a namedtuple but can have optional default fields (also made this change to TimeSeries since it has output only field).

Not sure if there's opposition to the Metric object keeping a reference to its MetricDescriptor, but it greatly simplifies everything for the Metric to be able to hold onto that information, will update the usage docs accordingly.

>>> value = get_num_404s_in_last_five_minutes() # get value from a hypothetical call
>>>
>>> client.write_timeseries(value, start_time=start, end_time=end,
... metric=metric, resource=resource) # API call

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

@waprin
Copy link
Contributor Author

waprin commented Aug 5, 2016

Point of discussion I realized after an email today - we should only write 1 Point per TimeSeries per second. That means we need some way of accepting writes that we delay sending of, which means we need some sort of asynchronous writer.

Should we invest time in getting that right up front?

Is a background thread that writes TimeSeries the most logical approach to that?

Is this something TimeSeriesWriter handles, or something that should be handled even directly on TimeSeries.create()?

I think the answer is yes, yes, and both, but opinions welcome.

@waprin
Copy link
Contributor Author

waprin commented Aug 5, 2016

Though I'm realizing that if we introduce a background thread, I'll have the same problem as I did in the Logging handler, which is that we need to be able to safely copy the Client, in a way that works for both HTTP and gRPC...hmm.

@supriyagarg
Copy link
Contributor

Just to clarify: 1 point/timeseries/second means the rpc call be at most once per second, right?

In such a case, TimeSeriesWriter should be able to handle it.
However, TimeSeries.create() will not have enough context to do so - we will have to clearly document that the user needs to handle the delay while using it.

@waprin
Copy link
Contributor Author

waprin commented Aug 5, 2016

If we wanted, TimeSeries objects can have the Client object attached to it in the factory so they could have the context if we wanted to, or we could make the create call take the client like create(client). But I overall agree that code maybe doesn't belong there.

I'm not even totally sure if it makes sense to try to handle the rate-limiting in this library, raises several issues, kicked off a discussion #2059.

@waprin waprin force-pushed the justdoc2 branch 2 times, most recently from 0d3ba13 to 299b14c Compare August 5, 2016 23:45
@rimey
Copy link
Contributor

rimey commented Aug 8, 2016

First of all, I'd like to set out what I believe to be an illustrative and realistic usage scenario:

  • The application has a number of replicated instances.
  • Each instance sends custom metrics to the service once a minute. It only sends one point per time series.
  • Each metric is identified by several labels. These might, for example, represent different categories of requests being processed, and different response statuses. There might be tens or hundreds of label combinations. Let's just assume that each instance writes them all each time. It writes them in just one request (or a few, if there are more than 200) because that's quicker and uses less request quota. That also enables the service to operate more efficiently.
  • The monitored resource (the type and all the labels) is the same for all of those time series, for a given instance. The type might be gce_instance, gke_container, or aws_ec2_instance, as the case may be. (If the application were not replicated, one might use the global monitored resource type instead.)

Some thoughts:

  • Batching of multiple time series in a single write is important.
  • Batching of multiple points for the same time series is not important. (The API might allow that someday, for special situations where it is useful.)
  • It would indeed make sense to allow the application to specify the monitored resource just once at startup. That said, I don't think it's worth introducing a class just for this reason.
  • It does not make sense to try to factor out the metric in the same way, at least not in a simple client library that wraps the API straightforwardly.

I would reiterate the proposal I made in #1867:

# Write a point to a time series.
client.write_point(metric=metric, resource=resource, value=3.14) # API call

# Write data to several time series. The argument is a sequence of TimeSeries objects.
client.write_time_series([ts1, ts2, ..., tsN]) # API call

I don't see value in messing with metric descriptors when writing custom metric data. We can just deduce the value type from the Python type of the value. That will mean that one can't provide an int when the value type is DOUBLE, or a float when the value type is INT64, but so be it.

https://cloud.google.com/monitoring/api/ref_v3/rest/v3/TimeSeries


Writing Custom Time Series

This comment was marked as spam.

This comment was marked as spam.

@rimey
Copy link
Contributor

rimey commented Aug 8, 2016

I honestly think it makes sense to get started on this without introducing any new classes at all.

@waprin
Copy link
Contributor Author

waprin commented Aug 8, 2016

Everything sounds ok but:

Batching of multiple time series in a single write is important.

I think there's no way to do this at the API level, but you can send multiple API calls in one request, but I think it would require changes to the core client code to do what google-api-python-client does here:

https://developers.google.com/api-client-library/python/guide/batch

also sounds like it should be a separate PR.

Sounds like the best course of action is to do something super minimal here, get it merged, figure out the more complicated stuff after that.

@supriyagarg
Copy link
Contributor

The Monitoring API's timeSeries.create method allows writing a single point to multiple timeseries:

https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/create

@waprin
Copy link
Contributor Author

waprin commented Sep 15, 2016

@rimey @supriyagarg im back! Thanks for patience, addressed review comments, take a look when you get a chance.

@waprin
Copy link
Contributor Author

waprin commented Sep 15, 2016

Also had to rebase on the rename so might be worth keeping in mind anywhere I missed that "ctrl-f" for gcloud is empty though so we should be good.

del timeseries.resource.labels['project_id']
self.assertEqual(timeseries.resource, resource)

descriptor.delete()

This comment was marked as spam.

specified::

>>> client.write_point(metric=metric, resource=resource,
... value=3.14, end_time=end_time) # API call

This comment was marked as spam.

This comment was marked as spam.

'type': self.type,
'labels': self.labels,
}
return info

This comment was marked as spam.

This comment was marked as spam.

'type': self.type,
'labels': self.labels,
}
return info

This comment was marked as spam.

This comment was marked as spam.



def _make_typed_value(value):
"""Creates a dict representing a TypedValue API object from a value.

This comment was marked as spam.

This comment was marked as spam.

This comment was marked as spam.

value = str(value)
return {
type_: value
}

This comment was marked as spam.

This comment was marked as spam.

Copy link
Contributor

@rimey rimey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is starting to look about ready. PTAL.

Copy link
Contributor Author

@waprin waprin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how requesting review is supposed to work?

@waprin
Copy link
Contributor Author

waprin commented Sep 19, 2016

@rimey missed those notifications, addressed those comments. Bit confused if I'm doing something wrong with new Github interface to note I addressed your comments.

Copy link
Contributor

@supriyagarg supriyagarg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR looks good to me.

type_ = typed_value_map[type(value)]
if type_ == "int64Value":
value = str(value)
return { type_: value }

This comment was marked as spam.

@waprin
Copy link
Contributor Author

waprin commented Sep 19, 2016

@rimey as mentioned offline just removed the descriptor fetch, seems to be fine, added retry_500 to write_point which happened about once out of ten times.

@rimey rimey merged commit d3e28ce into googleapis:master Sep 19, 2016
@dhermes
Copy link
Contributor

dhermes commented Sep 19, 2016

@rimey RE: doing a squash merge, that subverts our typical way of gathering all relevant changes for a release. We can work around it, but it's easiest if all PRs are just done via a merge rather than a squash.

@rimey
Copy link
Contributor

rimey commented Sep 19, 2016

@dhermes Are you saying we should prefer an old-fashioned approach where the author rebases to avoid having lots of small commits – e.g., as a result of responding to review comments?

@dhermes
Copy link
Contributor

dhermes commented Sep 19, 2016

Yes, though we expect the typical author to be experienced enough to hanlde this and break PRs into logical pieces. Not sure what makes it old or new fashioned.

parthea pushed a commit that referenced this pull request Nov 22, 2025
* Add Bigtable hello world sample. [(#371)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/371)

* Add Bigtable hello world sample.
* Update secrets for Bigtable tests.

* Add region tags to bigtable/hello sample.

Also, change the sample to use sequential keys (with a disclaimer) to
match the Java sample. I had forgotten to add a sample usage to get a
specific row, so add that, too.

* Close HappyBase connection in bigtable/hello sample.

I noticed that the `bigtable/hello` sample was not quitting when I sent
a `Ctrl-C` this should fix that problem.

* bigtable: Move hello to hello_happybase. [(#383)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/383)

* bigtable: Move hello to hello_happybase. [(#383)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/383)

* bigtable: add raw gcloud-python hello sample.

This sample uses the "raw" [gcloud-python Cloud Bigtable
package](https://googlecloudplatform.github.io/gcloud-python/stable/bigtable-usage.html).

* bigtable: add raw gcloud-python hello sample.

This sample uses the "raw" [gcloud-python Cloud Bigtable
package](https://googlecloudplatform.github.io/gcloud-python/stable/bigtable-usage.html).

* Update Bigtable samples to v2.

Table of Contents generated with:

    doctoc --title '**Table of Contents**' bigtable

Needs to wait for next gcloud-python launch. Tested locally with a
previous version of grpcio.

* Update Bigtable samples to v2.

Table of Contents generated with:

    doctoc --title '**Table of Contents**' bigtable

Needs to wait for next gcloud-python launch. Tested locally with a
previous version of grpcio.

* Auto-update dependencies. [(#456)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/456)

* Auto-update dependencies. [(#456)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/456)

* Remove grpc-python3 hackiness

Change-Id: I6bf9a8acb9ba7d067b3095b5857094cbc322ff58

* Remove grpc-python3 hackiness

Change-Id: I6bf9a8acb9ba7d067b3095b5857094cbc322ff58

* Auto-update dependencies. [(#540)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/540)

* Auto-update dependencies. [(#540)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/540)

* Auto-update dependencies. [(#542)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/542)

* Auto-update dependencies. [(#542)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/542)

* Move to google-cloud [(#544)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/544)

* Move to google-cloud [(#544)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/544)

* Fix link to bigtable happybase package. [(#576)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/576)

It moved to a new repo.

* Generate readmes for most service samples [(#599)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/599)

* Generate readmes for most service samples [(#599)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/599)

* Update samples to support latest Google Cloud Python [(#656)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/656)

* Fix bigtable tests

Change-Id: I49b68394ccd5133a64e019e91d1ec0529ffd64b3

* Fix bigtable tests

Change-Id: I49b68394ccd5133a64e019e91d1ec0529ffd64b3

* Auto-update dependencies. [(#715)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/715)

* Auto-update dependencies. [(#715)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/715)

* Auto-update dependencies. [(#781)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/781)

* Auto-update dependencies. [(#781)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/781)

* Remove cloud config fixture [(#887)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/887)

* Remove cloud config fixture

* Fix client secrets

* Fix bigtable instance

* Remove cloud config fixture [(#887)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/887)

* Remove cloud config fixture

* Fix client secrets

* Fix bigtable instance

* Auto-update dependencies. [(#914)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/914)

* Auto-update dependencies.

* xfail the error reporting test

* Fix lint

* Auto-update dependencies. [(#914)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/914)

* Auto-update dependencies.

* xfail the error reporting test

* Fix lint

* Re-generate all readmes

* Re-generate all readmes

* Auto-update dependencies. [(#922)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/922)

* Auto-update dependencies.

* Fix pubsub iam samples

* Auto-update dependencies. [(#922)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/922)

* Auto-update dependencies.

* Fix pubsub iam samples

* Fix README rst links [(#962)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/962)

* Fix README rst links

* Update all READMEs

* Fix README rst links [(#962)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/962)

* Fix README rst links

* Update all READMEs

* Auto-update dependencies. [(#1004)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1004)

* Auto-update dependencies.

* Fix natural language samples

* Fix pubsub iam samples

* Fix language samples

* Fix bigquery samples

* Auto-update dependencies. [(#1004)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1004)

* Auto-update dependencies.

* Fix natural language samples

* Fix pubsub iam samples

* Fix language samples

* Fix bigquery samples

* Update Bigtable Programmatic Scaling Example [(#1003)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1003)

* Update Bigtable Programmatic Scaling Example

* Rename "autoscaling" to "metricscaler" and the the term "programmatic
scaling"
* Remove `strategies.py` to simplify example
* Fix wrong sleep length bug
* Add maximum node count

* hegemonic review

* Auto-update dependencies. [(#1005)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1005)

* Auto-update dependencies.

* Fix bigtable lint

* Fix IOT iam interaction

* Auto-update dependencies. [(#1005)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1005)

* Auto-update dependencies.

* Fix bigtable lint

* Fix IOT iam interaction

* Auto-update dependencies. [(#1028)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1028)

* Auto-update dependencies. [(#1055)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1055)

* Auto-update dependencies.

* Explicitly use latest bigtable client

Change-Id: Id71e9e768f020730e4ca9514a0d7ebaa794e7d9e

* Revert language update for now

Change-Id: I8867f154e9a5aae00d0047c9caf880e5e8f50c53

* Remove pdb. smh

Change-Id: I5ff905fadc026eebbcd45512d4e76e003e3b2b43

* Auto-update dependencies. [(#1055)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1055)

* Auto-update dependencies.

* Explicitly use latest bigtable client

Change-Id: Id71e9e768f020730e4ca9514a0d7ebaa794e7d9e

* Revert language update for now

Change-Id: I8867f154e9a5aae00d0047c9caf880e5e8f50c53

* Remove pdb. smh

Change-Id: I5ff905fadc026eebbcd45512d4e76e003e3b2b43

* Auto-update dependencies. [(#1055)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1055)

* Auto-update dependencies.

* Explicitly use latest bigtable client

Change-Id: Id71e9e768f020730e4ca9514a0d7ebaa794e7d9e

* Revert language update for now

Change-Id: I8867f154e9a5aae00d0047c9caf880e5e8f50c53

* Remove pdb. smh

Change-Id: I5ff905fadc026eebbcd45512d4e76e003e3b2b43

* Auto-update dependencies. [(#1057)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1057)

* Auto-update dependencies. [(#1093)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1093)

* Auto-update dependencies.

* Fix storage notification poll sample

Change-Id: I6afbc79d15e050531555e4c8e51066996717a0f3

* Fix spanner samples

Change-Id: I40069222c60d57e8f3d3878167591af9130895cb

* Drop coverage because it's not useful

Change-Id: Iae399a7083d7866c3c7b9162d0de244fbff8b522

* Try again to fix flaky logging test

Change-Id: I6225c074701970c17c426677ef1935bb6d7e36b4

* Auto-update dependencies. [(#1093)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1093)

* Auto-update dependencies.

* Fix storage notification poll sample

Change-Id: I6afbc79d15e050531555e4c8e51066996717a0f3

* Fix spanner samples

Change-Id: I40069222c60d57e8f3d3878167591af9130895cb

* Drop coverage because it's not useful

Change-Id: Iae399a7083d7866c3c7b9162d0de244fbff8b522

* Try again to fix flaky logging test

Change-Id: I6225c074701970c17c426677ef1935bb6d7e36b4

* Auto-update dependencies. [(#1093)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1093)

* Auto-update dependencies.

* Fix storage notification poll sample

Change-Id: I6afbc79d15e050531555e4c8e51066996717a0f3

* Fix spanner samples

Change-Id: I40069222c60d57e8f3d3878167591af9130895cb

* Drop coverage because it's not useful

Change-Id: Iae399a7083d7866c3c7b9162d0de244fbff8b522

* Try again to fix flaky logging test

Change-Id: I6225c074701970c17c426677ef1935bb6d7e36b4

* Auto-update dependencies. [(#1094)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1094)

* Auto-update dependencies.

* Relax assertions in the ocr_nl sample

Change-Id: I6d37e5846a8d6dd52429cb30d501f448c52cbba1

* Drop unused logging apiary samples

Change-Id: I545718283773cb729a5e0def8a76ebfa40829d51

* Auto-update dependencies. [(#1094)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1094)

* Auto-update dependencies.

* Relax assertions in the ocr_nl sample

Change-Id: I6d37e5846a8d6dd52429cb30d501f448c52cbba1

* Drop unused logging apiary samples

Change-Id: I545718283773cb729a5e0def8a76ebfa40829d51

* Update all generated readme auth instructions [(#1121)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1121)

Change-Id: I03b5eaef8b17ac3dc3c0339fd2c7447bd3e11bd2

* Update all generated readme auth instructions [(#1121)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1121)

Change-Id: I03b5eaef8b17ac3dc3c0339fd2c7447bd3e11bd2

* Update all generated readme auth instructions [(#1121)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1121)

Change-Id: I03b5eaef8b17ac3dc3c0339fd2c7447bd3e11bd2

* Bigtable autoscaler: use size variable [(#1156)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1156)

* Added Link to Python Setup Guide [(#1158)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1158)

* Update Readme.rst to add Python setup guide

As requested in b/64770713.

This sample is linked in documentation https://cloud.google.com/bigtable/docs/scaling, and it would make more sense to update the guide here than in the documentation.

* Update README.rst

* Update README.rst

* Update README.rst

* Update README.rst

* Update README.rst

* Update install_deps.tmpl.rst

* Updated readmegen scripts and re-generated related README files

* Fixed the lint error

* Added Link to Python Setup Guide [(#1158)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1158)

* Update Readme.rst to add Python setup guide

As requested in b/64770713.

This sample is linked in documentation https://cloud.google.com/bigtable/docs/scaling, and it would make more sense to update the guide here than in the documentation.

* Update README.rst

* Update README.rst

* Update README.rst

* Update README.rst

* Update README.rst

* Update install_deps.tmpl.rst

* Updated readmegen scripts and re-generated related README files

* Fixed the lint error

* Added Link to Python Setup Guide [(#1158)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1158)

* Update Readme.rst to add Python setup guide

As requested in b/64770713.

This sample is linked in documentation https://cloud.google.com/bigtable/docs/scaling, and it would make more sense to update the guide here than in the documentation.

* Update README.rst

* Update README.rst

* Update README.rst

* Update README.rst

* Update README.rst

* Update install_deps.tmpl.rst

* Updated readmegen scripts and re-generated related README files

* Fixed the lint error

* Auto-update dependencies. [(#1186)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1186)

* Auto-update dependencies. [(#1186)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1186)

* Auto-update dependencies. [(#1186)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1186)

* Auto-update dependencies. [(#1199)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1199)

* Auto-update dependencies.

* Fix iot lint

Change-Id: I6289e093bdb35e38f9e9bfc3fbc3df3660f9a67e

* Auto-update dependencies. [(#1199)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1199)

* Auto-update dependencies.

* Fix iot lint

Change-Id: I6289e093bdb35e38f9e9bfc3fbc3df3660f9a67e

* Auto-update dependencies. [(#1199)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1199)

* Auto-update dependencies.

* Fix iot lint

Change-Id: I6289e093bdb35e38f9e9bfc3fbc3df3660f9a67e

* Added "Open in Cloud Shell" buttons to README files [(#1254)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1254)

* Added "Open in Cloud Shell" buttons to README files [(#1254)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1254)

* Added "Open in Cloud Shell" buttons to README files [(#1254)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1254)

* Auto-update dependencies. [(#1377)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1377)

* Auto-update dependencies.

* Update requirements.txt

* Auto-update dependencies. [(#1377)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1377)

* Auto-update dependencies.

* Update requirements.txt

* Auto-update dependencies. [(#1377)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1377)

* Auto-update dependencies.

* Update requirements.txt

* Regenerate the README files and fix the Open in Cloud Shell link for some samples [(#1441)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1441)

* Regenerate the README files and fix the Open in Cloud Shell link for some samples [(#1441)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1441)

* Regenerate the README files and fix the Open in Cloud Shell link for some samples [(#1441)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1441)

* Update READMEs to fix numbering and add git clone [(#1464)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1464)

* Update READMEs to fix numbering and add git clone [(#1464)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1464)

* Update READMEs to fix numbering and add git clone [(#1464)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1464)

* Add Bigtable table admin sample [(#1549)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1549)

* Update tableadmin [(#1562)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1562)

Fixes #1555

* Cloud Bigtable Quickstarts [(#1616)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1616)

* quickstart

* quickstart happybase

* linting and making tests workˆ

* Tidying up

* Trigger

* Fixes for Python3

* Showing default values for the quickstart functions

* Fix lint issue with indentation

* Cloud Bigtable Quickstarts [(#1616)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1616)

* quickstart

* quickstart happybase

* linting and making tests workˆ

* Tidying up

* Trigger

* Fixes for Python3

* Showing default values for the quickstart functions

* Fix lint issue with indentation

* Bigtable: Update tableadmin sample to point to latest release. [(#1665)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1665)

* Update tableadmin sample to point to latest release.

* update tableadmin

* Bigtable: update helloworld example [(#1670)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1670)

* Update helloworld example

* Use iterable PartialRowsData

* Bigtable: Create Instanceadmin sample [(#1664)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1664)

* Python instanceadmin sample

instanceadmin python sample

* Updated instanceadmin.py

* modify instanceadmin as per comments

* Update instanceadmin.py as per the local review comments.

* Update instanceadmin

* update instanceadmin, to fix ci failures.

* update instanceadmin

* update instanceadmin

* Implement review comments

* Upgrading the metrics query to the latest version [(#1674)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1674)

* Upgrading the metrics query to the latest version

* fix lint issues

* Importing module not class

* Fixed print statements [(#1755)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1755)

* Updated trampoline script to match latest version that cleans up files

* Added newline to end of trampoline script

* A quickstart test was missing requirements.txt

* Replaced print statements with print function calls

* Missed a print issue last time

* Bad indent fixed

* Fixed print statements [(#1755)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1755)

* Updated trampoline script to match latest version that cleans up files

* Added newline to end of trampoline script

* A quickstart test was missing requirements.txt

* Replaced print statements with print function calls

* Missed a print issue last time

* Bad indent fixed

* Fixed print statements [(#1755)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1755)

* Updated trampoline script to match latest version that cleans up files

* Added newline to end of trampoline script

* A quickstart test was missing requirements.txt

* Replaced print statements with print function calls

* Missed a print issue last time

* Bad indent fixed

* Making bigtable tests run successfully [(#1764)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1764)

* Making bigtable tests run successfully

* Fixed missing import

* Renamed noxfile for new environment

* Moving the nox name back

* Making bigtable tests run successfully [(#1764)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1764)

* Making bigtable tests run successfully

* Fixed missing import

* Renamed noxfile for new environment

* Moving the nox name back

* Added Bu Sun's updates, fixed some lint errors [(#1770)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1770)

* Added Bu Sun's updates, fixed some lint errors

* Changes to use new nox version

* Minor formatting to force a presubmit check to run

* Ignore noxfile.py for tests

* Clean up layout for lint

* updating to latest happy base client version [(#1794)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1794)

* Auto-update dependencies. [(#1846)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1846)

ACK, merging.

* Auto-update dependencies. [(#1846)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1846)

ACK, merging.

* Auto-update dependencies. [(#1846)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1846)

ACK, merging.

* Auto-update dependencies. [(#1846)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1846)

ACK, merging.

* Auto-update dependencies. [(#1846)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1846)

ACK, merging.

* Auto-update dependencies. [(#1846)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1846)

ACK, merging.

* Bigtable: add filter region tag to hello world [(#1878)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1878)

* use row.cell rather than row.cell_value in the example
add 'filter' and 'dependencies' region tags

* move the comment line

* [bigtable] Clean up quickstart comments and vars [(#1890)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1890)

Clean up comments and variable names as this quickstart will be sourced
directly into our quickstart docs.

* Auto-update dependencies. [(#1980)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1980)

* Auto-update dependencies.

* Update requirements.txt

* Update requirements.txt

* Auto-update dependencies. [(#1980)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1980)

* Auto-update dependencies.

* Update requirements.txt

* Update requirements.txt

* Auto-update dependencies. [(#1980)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1980)

* Auto-update dependencies.

* Update requirements.txt

* Update requirements.txt

* Auto-update dependencies. [(#1980)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1980)

* Auto-update dependencies.

* Update requirements.txt

* Update requirements.txt

* Auto-update dependencies. [(#1980)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1980)

* Auto-update dependencies.

* Update requirements.txt

* Update requirements.txt

* Auto-update dependencies. [(#1980)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1980)

* Auto-update dependencies.

* Update requirements.txt

* Update requirements.txt

* Auto-update dependencies. [(#1980)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/1980)

* Auto-update dependencies.

* Update requirements.txt

* Update requirements.txt

* New library version to address failure. [(#2057)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2057)

* New library version to address failure.

* Encoded strings for library call

* Give changes a bit longer to finish

* fix lint error

* Update main.py

* Paren was missing

* New library version to address failure. [(#2057)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2057)

* New library version to address failure.

* Encoded strings for library call

* Give changes a bit longer to finish

* fix lint error

* Update main.py

* Paren was missing

* remove broken test config [(#2054)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2054)

* remove broken test config [(#2054)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2054)

* Cloud Bigtable Region tag consistency [(#2018)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2018)

* Updating the region tags to be consistent across Cloud Bigtable.

Need to figure out filtering for happybase or rename

* Remove happybase filter

* Linting

* Cloud Bigtable Region tag consistency [(#2018)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2018)

* Updating the region tags to be consistent across Cloud Bigtable.

Need to figure out filtering for happybase or rename

* Remove happybase filter

* Linting

* Deflake bigtable and spanner tests. [(#2224)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2224)

* Spanner doesn't actually promise the order of the results, so make the assertion work regardless of ordering.
* Bigtable might need some more time to scale, so retry the assertion up to 10 times.

* Cloud Bigtable writes samples [(#2201)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2201)

* Bigtable write samples

* Cleaning up test

* Fixing lint issues

* Fixing imports in test

* Cleaning up samples and showing error handling

* removing note about the row commit bug

* Add fixture to write test

* Use test fixtures to create and delete test tables.

* Adds updates including compute [(#2436)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2436)

* Adds updates including compute

* Python 2 compat pytest

* Fixing weird \r\n issue from GH merge

* Put asset tests back in

* Re-add pod operator test

* Hack parameter for k8s pod operator

* Adds updates including compute [(#2436)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2436)

* Adds updates including compute

* Python 2 compat pytest

* Fixing weird \r\n issue from GH merge

* Put asset tests back in

* Re-add pod operator test

* Hack parameter for k8s pod operator

* Adds updates including compute [(#2436)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2436)

* Adds updates including compute

* Python 2 compat pytest

* Fixing weird \r\n issue from GH merge

* Put asset tests back in

* Re-add pod operator test

* Hack parameter for k8s pod operator

* Adds updates including compute [(#2436)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2436)

* Adds updates including compute

* Python 2 compat pytest

* Fixing weird \r\n issue from GH merge

* Put asset tests back in

* Re-add pod operator test

* Hack parameter for k8s pod operator

* Adds updates including compute [(#2436)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2436)

* Adds updates including compute

* Python 2 compat pytest

* Fixing weird \r\n issue from GH merge

* Put asset tests back in

* Re-add pod operator test

* Hack parameter for k8s pod operator

* Adds updates including compute [(#2436)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2436)

* Adds updates including compute

* Python 2 compat pytest

* Fixing weird \r\n issue from GH merge

* Put asset tests back in

* Re-add pod operator test

* Hack parameter for k8s pod operator

* Adds updates including compute [(#2436)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2436)

* Adds updates including compute

* Python 2 compat pytest

* Fixing weird \r\n issue from GH merge

* Put asset tests back in

* Re-add pod operator test

* Hack parameter for k8s pod operator

* Auto-update dependencies. [(#2005)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2005)

* Auto-update dependencies.

* Revert update of appengine/flexible/datastore.

* revert update of appengine/flexible/scipy

* revert update of bigquery/bqml

* revert update of bigquery/cloud-client

* revert update of bigquery/datalab-migration

* revert update of bigtable/quickstart

* revert update of compute/api

* revert update of container_registry/container_analysis

* revert update of dataflow/run_template

* revert update of datastore/cloud-ndb

* revert update of dialogflow/cloud-client

* revert update of dlp

* revert update of functions/imagemagick

* revert update of functions/ocr/app

* revert update of healthcare/api-client/fhir

* revert update of iam/api-client

* revert update of iot/api-client/gcs_file_to_device

* revert update of iot/api-client/mqtt_example

* revert update of language/automl

* revert update of run/image-processing

* revert update of vision/automl

* revert update testing/requirements.txt

* revert update of vision/cloud-client/detect

* revert update of vision/cloud-client/product_search

* revert update of jobs/v2/api_client

* revert update of jobs/v3/api_client

* revert update of opencensus

* revert update of translate/cloud-client

* revert update to speech/cloud-client

Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com>
Co-authored-by: Doug Mahugh <dmahugh@gmail.com>

* Auto-update dependencies. [(#2005)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2005)

* Auto-update dependencies.

* Revert update of appengine/flexible/datastore.

* revert update of appengine/flexible/scipy

* revert update of bigquery/bqml

* revert update of bigquery/cloud-client

* revert update of bigquery/datalab-migration

* revert update of bigtable/quickstart

* revert update of compute/api

* revert update of container_registry/container_analysis

* revert update of dataflow/run_template

* revert update of datastore/cloud-ndb

* revert update of dialogflow/cloud-client

* revert update of dlp

* revert update of functions/imagemagick

* revert update of functions/ocr/app

* revert update of healthcare/api-client/fhir

* revert update of iam/api-client

* revert update of iot/api-client/gcs_file_to_device

* revert update of iot/api-client/mqtt_example

* revert update of language/automl

* revert update of run/image-processing

* revert update of vision/automl

* revert update testing/requirements.txt

* revert update of vision/cloud-client/detect

* revert update of vision/cloud-client/product_search

* revert update of jobs/v2/api_client

* revert update of jobs/v3/api_client

* revert update of opencensus

* revert update of translate/cloud-client

* revert update to speech/cloud-client

Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com>
Co-authored-by: Doug Mahugh <dmahugh@gmail.com>

* Auto-update dependencies. [(#2005)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2005)

* Auto-update dependencies.

* Revert update of appengine/flexible/datastore.

* revert update of appengine/flexible/scipy

* revert update of bigquery/bqml

* revert update of bigquery/cloud-client

* revert update of bigquery/datalab-migration

* revert update of bigtable/quickstart

* revert update of compute/api

* revert update of container_registry/container_analysis

* revert update of dataflow/run_template

* revert update of datastore/cloud-ndb

* revert update of dialogflow/cloud-client

* revert update of dlp

* revert update of functions/imagemagick

* revert update of functions/ocr/app

* revert update of healthcare/api-client/fhir

* revert update of iam/api-client

* revert update of iot/api-client/gcs_file_to_device

* revert update of iot/api-client/mqtt_example

* revert update of language/automl

* revert update of run/image-processing

* revert update of vision/automl

* revert update testing/requirements.txt

* revert update of vision/cloud-client/detect

* revert update of vision/cloud-client/product_search

* revert update of jobs/v2/api_client

* revert update of jobs/v3/api_client

* revert update of opencensus

* revert update of translate/cloud-client

* revert update to speech/cloud-client

Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com>
Co-authored-by: Doug Mahugh <dmahugh@gmail.com>

* Auto-update dependencies. [(#2005)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2005)

* Auto-update dependencies.

* Revert update of appengine/flexible/datastore.

* revert update of appengine/flexible/scipy

* revert update of bigquery/bqml

* revert update of bigquery/cloud-client

* revert update of bigquery/datalab-migration

* revert update of bigtable/quickstart

* revert update of compute/api

* revert update of container_registry/container_analysis

* revert update of dataflow/run_template

* revert update of datastore/cloud-ndb

* revert update of dialogflow/cloud-client

* revert update of dlp

* revert update of functions/imagemagick

* revert update of functions/ocr/app

* revert update of healthcare/api-client/fhir

* revert update of iam/api-client

* revert update of iot/api-client/gcs_file_to_device

* revert update of iot/api-client/mqtt_example

* revert update of language/automl

* revert update of run/image-processing

* revert update of vision/automl

* revert update testing/requirements.txt

* revert update of vision/cloud-client/detect

* revert update of vision/cloud-client/product_search

* revert update of jobs/v2/api_client

* revert update of jobs/v3/api_client

* revert update of opencensus

* revert update of translate/cloud-client

* revert update to speech/cloud-client

Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com>
Co-authored-by: Doug Mahugh <dmahugh@gmail.com>

* Auto-update dependencies. [(#2005)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2005)

* Auto-update dependencies.

* Revert update of appengine/flexible/datastore.

* revert update of appengine/flexible/scipy

* revert update of bigquery/bqml

* revert update of bigquery/cloud-client

* revert update of bigquery/datalab-migration

* revert update of bigtable/quickstart

* revert update of compute/api

* revert update of container_registry/container_analysis

* revert update of dataflow/run_template

* revert update of datastore/cloud-ndb

* revert update of dialogflow/cloud-client

* revert update of dlp

* revert update of functions/imagemagick

* revert update of functions/ocr/app

* revert update of healthcare/api-client/fhir

* revert update of iam/api-client

* revert update of iot/api-client/gcs_file_to_device

* revert update of iot/api-client/mqtt_example

* revert update of language/automl

* revert update of run/image-processing

* revert update of vision/automl

* revert update testing/requirements.txt

* revert update of vision/cloud-client/detect

* revert update of vision/cloud-client/product_search

* revert update of jobs/v2/api_client

* revert update of jobs/v3/api_client

* revert update of opencensus

* revert update of translate/cloud-client

* revert update to speech/cloud-client

Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com>
Co-authored-by: Doug Mahugh <dmahugh@gmail.com>

* Cleanup bigtable python examples [(#2692)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2692)

* Cleanup bigtable python:
Use new row types for mutations
Update bigtable version in requirements
Delete table after tests

* Change bigtable cluster variable to bigtable instance for consistency
Create and delete quickstart table during test

* Fixing step size for metric scaler
Create unique tables for quickstart tests

* Creating fixtures for quickstart tests
Fixing hb quickstart test output

* Fix quickstart extra delete table
Update happybase to use direct row

* Use clearer instance names for tests
Create unique instances for metric scaler tests

* Linting

* remove core dep

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* Cleanup bigtable python examples [(#2692)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2692)

* Cleanup bigtable python:
Use new row types for mutations
Update bigtable version in requirements
Delete table after tests

* Change bigtable cluster variable to bigtable instance for consistency
Create and delete quickstart table during test

* Fixing step size for metric scaler
Create unique tables for quickstart tests

* Creating fixtures for quickstart tests
Fixing hb quickstart test output

* Fix quickstart extra delete table
Update happybase to use direct row

* Use clearer instance names for tests
Create unique instances for metric scaler tests

* Linting

* remove core dep

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* Cleanup bigtable python examples [(#2692)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2692)

* Cleanup bigtable python:
Use new row types for mutations
Update bigtable version in requirements
Delete table after tests

* Change bigtable cluster variable to bigtable instance for consistency
Create and delete quickstart table during test

* Fixing step size for metric scaler
Create unique tables for quickstart tests

* Creating fixtures for quickstart tests
Fixing hb quickstart test output

* Fix quickstart extra delete table
Update happybase to use direct row

* Use clearer instance names for tests
Create unique instances for metric scaler tests

* Linting

* remove core dep

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* Cleanup bigtable python examples [(#2692)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2692)

* Cleanup bigtable python:
Use new row types for mutations
Update bigtable version in requirements
Delete table after tests

* Change bigtable cluster variable to bigtable instance for consistency
Create and delete quickstart table during test

* Fixing step size for metric scaler
Create unique tables for quickstart tests

* Creating fixtures for quickstart tests
Fixing hb quickstart test output

* Fix quickstart extra delete table
Update happybase to use direct row

* Use clearer instance names for tests
Create unique instances for metric scaler tests

* Linting

* remove core dep

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* Cleanup bigtable python examples [(#2692)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2692)

* Cleanup bigtable python:
Use new row types for mutations
Update bigtable version in requirements
Delete table after tests

* Change bigtable cluster variable to bigtable instance for consistency
Create and delete quickstart table during test

* Fixing step size for metric scaler
Create unique tables for quickstart tests

* Creating fixtures for quickstart tests
Fixing hb quickstart test output

* Fix quickstart extra delete table
Update happybase to use direct row

* Use clearer instance names for tests
Create unique instances for metric scaler tests

* Linting

* remove core dep

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* Cleanup bigtable python examples [(#2692)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2692)

* Cleanup bigtable python:
Use new row types for mutations
Update bigtable version in requirements
Delete table after tests

* Change bigtable cluster variable to bigtable instance for consistency
Create and delete quickstart table during test

* Fixing step size for metric scaler
Create unique tables for quickstart tests

* Creating fixtures for quickstart tests
Fixing hb quickstart test output

* Fix quickstart extra delete table
Update happybase to use direct row

* Use clearer instance names for tests
Create unique instances for metric scaler tests

* Linting

* remove core dep

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* Cleanup bigtable python examples [(#2692)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2692)

* Cleanup bigtable python:
Use new row types for mutations
Update bigtable version in requirements
Delete table after tests

* Change bigtable cluster variable to bigtable instance for consistency
Create and delete quickstart table during test

* Fixing step size for metric scaler
Create unique tables for quickstart tests

* Creating fixtures for quickstart tests
Fixing hb quickstart test output

* Fix quickstart extra delete table
Update happybase to use direct row

* Use clearer instance names for tests
Create unique instances for metric scaler tests

* Linting

* remove core dep

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* Cleanup bigtable python examples [(#2692)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2692)

* Cleanup bigtable python:
Use new row types for mutations
Update bigtable version in requirements
Delete table after tests

* Change bigtable cluster variable to bigtable instance for consistency
Create and delete quickstart table during test

* Fixing step size for metric scaler
Create unique tables for quickstart tests

* Creating fixtures for quickstart tests
Fixing hb quickstart test output

* Fix quickstart extra delete table
Update happybase to use direct row

* Use clearer instance names for tests
Create unique instances for metric scaler tests

* Linting

* remove core dep

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* chore(deps): update dependency google-cloud-core to v1.3.0 [(#3066)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3066)

* bigtable: read and filter snippets [(#2707)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2707)

* Bigtable write samples

* Cleaning up test

* Fixing lint issues

* Fixing imports in test

* Cleaning up samples and showing error handling

* removing note about the row commit bug

* Add fixture to write test

* Read snippets WIP

* Cleanup bigtable python:
Use new row types for mutations
Update bigtable version in requirements
Delete table after tests

* Change bigtable cluster variable to bigtable instance for consistency
Create and delete quickstart table during test

* Fixing step size for metric scaler
Create unique tables for quickstart tests

* Creating fixtures for quickstart tests
Fixing hb quickstart test output

* Fix quickstart extra delete table
Update happybase to use direct row

* Use clearer instance names for tests
Create unique instances for metric scaler tests

* Linting

* get session issue in test sorted out

* Read snippets with tests working

* Filter snippets with tests working

* Lint

* Update module import

* Fix bigtable instance env var

* Change scope to module

* Don't print empty parens

* sort cols

* sort by cfs too

* Make requirements more specific to samples.
LInt fixes

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>
Co-authored-by: Christopher Wilcox <crwilcox@google.com>

* bigtable/metricscaler: Add Dockerfile [(#3103)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3103)

* bigtable/metricscaler: Add Dockerfile.
* Add copyright header

* Simplify noxfile setup. [(#2806)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Simplify noxfile setup. [(#2806)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Simplify noxfile setup. [(#2806)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Simplify noxfile setup. [(#2806)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Simplify noxfile setup. [(#2806)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Simplify noxfile setup. [(#2806)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Simplify noxfile setup. [(#2806)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* Simplify noxfile setup. [(#2806)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/2806)

* chore(deps): update dependency requests to v2.23.0

* Simplify noxfile and add version control.

* Configure appengine/standard to only test Python 2.7.

* Update Kokokro configs to match noxfile.

* Add requirements-test to each folder.

* Remove Py2 versions from everything execept appengine/standard.

* Remove conftest.py.

* Remove appengine/standard/conftest.py

* Remove 'no-sucess-flaky-report' from pytest.ini.

* Add GAE SDK back to appengine/standard tests.

* Fix typo.

* Roll pytest to python 2 version.

* Add a bunch of testing requirements.

* Remove typo.

* Add appengine lib directory back in.

* Add some additional requirements.

* Fix issue with flake8 args.

* Even more requirements.

* Readd appengine conftest.py.

* Add a few more requirements.

* Even more Appengine requirements.

* Add webtest for appengine/standard/mailgun.

* Add some additional requirements.

* Add workaround for issue with mailjet-rest.

* Add responses for appengine/standard/mailjet.

Co-authored-by: Renovate Bot <bot@renovateapp.com>

* chore(deps): update dependency google-cloud-monitoring to v0.35.0 [(#3459)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3459)

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* [bigtable] fix: wrap sample invocations with retries [(#3494)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3494)

fix #3070

Also added `BIGTABLE_INSTANCE` to testing/test-env.tmpl.sh

* bigtable: Handle dev instances and use storage utilization in metric scaler [(#3119)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3119)

* WIP handle development instances in metric scaler

* use storage utilization and tested

* Fix metric queries

* remove tests for low storage util

* cleanup metric query

* EOF new line

* use uuid instead of random

* lint

* fix uuid length

* fix uuid length

* fix uuid length (again)

Co-authored-by: Christopher Wilcox <crwilcox@google.com>
Co-authored-by: Takashi Matsuo <tmatsuo@google.com>

* chore: some lint fixes [(#3738)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3738)

* chore: some lint fixes [(#3738)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3738)

* chore: some lint fixes [(#3738)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3738)

* chore: some lint fixes [(#3739)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3739)

* chore: some lint fixes [(#3739)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3739)

* chore: some lint fixes [(#3740)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3740)

* chore(deps): update dependency google-cloud-monitoring to v0.36.0 [(#3783)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3783)

Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>

* testing: various cleanups [(#3877)](https://github.com/GoogleCloudPlatform/python-docs-samples/issues/3877)

* testing: various cleanups

* [iap]: only run iap tests on Kokoro
* [vision/automl]: use temporary directory for temporary files
* [appengine/flexible/scipy]: use temporary directory
* [bigtable/snippets/reads]: update pytest snapshot
* [texttospeech/cloud-client]: added output.mp3 to .gitignore
* [iot/api-client/gcs_file_to_device]: use temporary directory
* [iot/api-client/mqtt_example]: use temporary directory
* [logging/cloud-client]: use uuid and add backoff

* use project directory with Trampoline V1

* chore: update templates

* chore: add noxfiles for all sample projects

* docs: add multiprocessing

Co-authored-by: Tim Swast <swast@google.com>
Co-authored-by: Bill Prin <waprin@gmail.com>
Co-authored-by: DPE bot <dpebot@google.com>
Co-authored-by: Jon Wayne Parrott <jonwayne@google.com>
Co-authored-by: michaelawyu <chenyumic@google.com>
Co-authored-by: Frank Natividad <frankyn@users.noreply.github.com>
Co-authored-by: sangramql <39852271+sangramql@users.noreply.github.com>
Co-authored-by: Billy Jacobson <billyjacobson@users.noreply.github.com>
Co-authored-by: Charles Engelke <github@engelke.com>
Co-authored-by: sumit-ql <39561577+sumit-ql@users.noreply.github.com>
Co-authored-by: Alex <7764119+AVaksman@users.noreply.github.com>
Co-authored-by: Misha Brukman <mbrukman@google.com>
Co-authored-by: Averi Kitsch <akitsch@google.com>
Co-authored-by: Thea Flowers <theaflowers@google.com>
Co-authored-by: Gus Class <gguuss@gmail.com>
Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com>
Co-authored-by: Doug Mahugh <dmahugh@gmail.com>
Co-authored-by: Leah E. Cole <6719667+leahecole@users.noreply.github.com>
Co-authored-by: WhiteSource Renovate <bot@renovateapp.com>
Co-authored-by: Christopher Wilcox <crwilcox@google.com>
Co-authored-by: Matt Braymer-Hayes <matt.hayes91@gmail.com>
Co-authored-by: Takashi Matsuo <tmatsuo@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: monitoring Issues related to the Cloud Monitoring API. cla: yes This human has signed the Contributor License Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants