logging: convert to gax#2072
Conversation
|
@jmuk -- I'm running into an issue with the { orderBy: 'timestamp desc',
pageSize: 1,
projectIds: [ 'nth-circlet-705' ] }
Do you know what I need to do to fix this? |
|
The error message is saying about the quota, somehow the API calls could hit to some limit? I'm still not sure, but it might be worth trying Also, probably nicer to use |
|
|
|
Oh and you specified |
|
That's a bug in the generated code, right? API requests shouldn't continue after I receive my pageSize limit, regardless of autoPaginate value. This is done in I can see how |
|
I think this is an intended behavior. |
|
But: if it's quite common among GCN, probably we should change the behavior on the codegen side. Is there good examples of the same pattern on other APIs? |
|
It looks like it's just Logging that uses |
|
@jmuk |
|
It also seems that I can't end a stream early. We support this in GCN with the help of Before each item is pushed to the stream, it also makes sure the stream isn't ended. In this scenario, this would allow me to do something like this: var entriesMatched = 0
logging.getEntriesStream()
.on('data', function() {
entriesMatched++
if (entriesMatched === 20) this.end()
if (entriesMatched > 20) throw new Error('I should only get 20!')
})
.on('end', function() {
assert.strictEqual(entriesMatched, 20)
})
|
478a3a6 to
7aaa3e3
Compare
packages/logging/src/log.js
Outdated
| }); | ||
| delete reqOpts.gaxOptions; | ||
|
|
||
| self.api.Logging.writeLogEntries(reqOpts, options.gaxOptions, callback); |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
|
@callmehiphop PTAL -- some things to consider: We use the We can get the authClient from GAX, but, we can't instantiate GAX unless we have a projectId or it throws. So, that's why I included @jmuk marked this as blocked because without being able to end a stream, a method like |
|
Sorry for the delays:
|
|
will be tracked by googleapis/google-cloud-node-core#493 and googleapis/google-cloud-node-core#492. |
|
Yes, anywhere a stream is used and it has the chance to make multiple requests. split-array-stream might be worth looking into. I made it for this exact case -- you can see the usage example in its readme is based on our use case Also, this got collapsed by GH, but is also a blocker, as we are getting output printed to the screen: #2072 (comment) Thanks! |
|
@jmuk just to get an idea, how far off are these issues from being worked on? Feel free to let me know if you have any further questions or need a second pair of eyes on anything. Thanks! |
|
@stephenplusplus a sort of general thought on the implementation, we do something similar in Spanner where we have to step in front of most requests to make sure we have a session available first and I think the implementations are a little bit different (here we use strings, there we use a bound function). Thoughts on a small refactor for the sake of consistency? |
|
Unfortunately, I have to go with the string (and we'll have to do this in Spanner... and Speech... and Vision as well), because we can't instantiate the generated client until we have a project ID. |
| * }); | ||
| */ | ||
| Logging.prototype.getSinksStream = common.paginator.streamify('getSinks'); | ||
| Logging.prototype.getSinksStream = function(options) { |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
|
@stephenplusplus ah, right. LGTM then |
|
@jmuk can you ping when the new release is available? Will new files need to be generated? |
|
published google-gax 0.13.0. This includes the fixes and |
|
Awesome, thanks! |
6db0dbf to
aac822b
Compare
aac822b to
93fa32e
Compare
|
Changes Unknown when pulling 51a81f3 on stephenplusplus:spp--1859-logging into ** on GoogleCloudPlatform:master**. |
|
Changes Unknown when pulling 81e88ce on stephenplusplus:spp--1859-logging into ** on GoogleCloudPlatform:master**. |
|
@callmehiphop ready for another look-- tests have been added, but I believe the source is the same as your last review. |
|
LGTM |
🤖 I have created a release *beep* *boop* --- ## [7.9.1](https://togithub.com/googleapis/nodejs-spanner/compare/v7.9.0...v7.9.1) (2024-06-26) ### Bug Fixes * Retry with timeout ([#2071](https://togithub.com/googleapis/nodejs-spanner/issues/2071)) ([a943257](https://togithub.com/googleapis/nodejs-spanner/commit/a943257a0402b26fd80196057a9724fd28fc5c1b)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please).
* sample: blind write * sample: blind write * refactor * add class mutation * add class mutation * feat: blind-writes * refactor * fix: lint errors * refactor * fix: lint errors * fix: header checks * refactor the blind write * feat: add support for blind writes chore(main): release 7.9.0 (#2053) :robot: I have created a release *beep* *boop* --- * **spanner:** Add support for batchWrite ([#2054](https://togithub.com/googleapis/nodejs-spanner/issues/2054)) ([06aab6e](https://togithub.com/googleapis/nodejs-spanner/commit/06aab6e39bbce9e3786f1ac631c80e8909197e92)) * **deps:** Update dependency google-gax to v4.3.4 ([#2051](https://togithub.com/googleapis/nodejs-spanner/issues/2051)) ([80abf06](https://togithub.com/googleapis/nodejs-spanner/commit/80abf06ba8ef9497318ffc597b83fb63e4408f9c)) * **deps:** Update dependency google-gax to v4.3.5 ([#2055](https://togithub.com/googleapis/nodejs-spanner/issues/2055)) ([702c9b0](https://togithub.com/googleapis/nodejs-spanner/commit/702c9b0f34e6cc34233c5aa52b97601b19f70980)) * **deps:** Update dependency google-gax to v4.3.6 ([#2057](https://togithub.com/googleapis/nodejs-spanner/issues/2057)) ([74ebf1e](https://togithub.com/googleapis/nodejs-spanner/commit/74ebf1e45cddf614c180295f3a761a8f84c5cb32)) * **deps:** Update dependency google-gax to v4.3.7 ([#2068](https://togithub.com/googleapis/nodejs-spanner/issues/2068)) ([28fec6c](https://togithub.com/googleapis/nodejs-spanner/commit/28fec6ca505d78d725efc123950be978e0c84ab7)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). refactor: blind write method fix: lint errors fix: Retry with timeout (#2071) Use `gaxOptions.timeout` during retry in streaming calls. Earlier the timeout value was only used for a single RPC not for the whole operation including retries. Now if RPC returns `Unavailable` error and the timeout value has been reached, library will throw an Deadline exceeded error. ``` const query = { sql: 'Select 1', gaxOptions: {timeout: 500} } const [rows] = await database.run(query); ``` chore(main): release 7.9.1 (#2072) :robot: I have created a release *beep* *boop* --- * Retry with timeout ([#2071](https://togithub.com/googleapis/nodejs-spanner/issues/2071)) ([a943257](https://togithub.com/googleapis/nodejs-spanner/commit/a943257a0402b26fd80196057a9724fd28fc5c1b)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). refactor: blind write method test: unit test for blind write test: unit test for blind write refactor fix: lint errors feat: add support for change streams transaction exclusion option for Batch Write (#2070) * feat: change stream transaction exclusion option for Batch Write * refactor docs: add doc to blindWrite method docs: add doc to the setQueuedMutations refactor: doc setQueuedMutations fix: presubmit error fix(deps): update dependency google-gax to v4.3.8 (#2077) [](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [google-gax](https://togithub.com/googleapis/gax-nodejs) ([source](https://togithub.com/googleapis/gax-nodejs/tree/HEAD/gax)) | [`4.3.7` -> `4.3.8`](https://renovatebot.com/diffs/npm/google-gax/4.3.7/4.3.8) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- <details> <summary>googleapis/gax-nodejs (google-gax)</summary> [Compare Source](https://togithub.com/googleapis/gax-nodejs/compare/google-gax-v4.3.7...google-gax-v4.3.8) - **deps:** remove rimraf in favor of native node rm function ([#​1626](https://togithub.com/googleapis/gax-nodejs/issues/1626)) ([dd87646](https://togithub.com/googleapis/gax-nodejs/commit/dd87646618d5026549920e224df7f85cbb5ff6a8)) </details> --- 📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/nodejs-spanner). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> updated updated lint refactor * fix: presubmit error * refactor: docs of the method writeAtLeastOnce * test: unit test using mockspanner * fix: lint errors * docs refactor * refactor * refactor --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: surbhigarg92 <surbhigarg.92@gmail.com>
RE: #1859
To Dos
This converts the Logging handwritten API from making manual gRPC requests via GrpcService to gax.